Loading...
JavaScript | Слияние двух массивов.
И так, опять вопрос. Нужно два массива сделать одним.
Есть
let a = ['one','two','three'];
let b = [1,2,3];

Нужно сделать:

['one','1','two','2','three','3'];

Голова сегодня вообще не хочет работать.
________
посл. ред. 04.11.2021 в 13:05; всего 1 раз(а); by popka_slonika
Ах да. Массивы могут быть разной длины.
popka_slonika (04.11.2021 в 13:04)
И так, опять вопрос. Нужно два массива сделать одним.
Есть
let a = ['one','two','three'];
let b = [1,2,3];

Нужно сделать:

['one','1','two','2','three','3'];

Голова сегодня вообще не хочет работать.

const students1 = ['Иванов', 'Сидоров'];
const students2 = ['Петров', 'Курочкина'];

const all = [...students1, ...students2];

all; // ['Иванов', 'Сидоров', 'Петров', 'Курочкина']
Пупсь Сайбот (04.11.2021 в 13:05)

const students1 = ['Иванов', 'Сидоров'];
const students2 = ['Петров', 'Курочкина'];

const all = [...students1, ...students2];

all; // ['Иванов', 'Сидоров', 'Петров', 'Курочкина']

Вопрос стоит в написании функции, которая максимально быстро сольет два массива в один. При этом не важно какой длины массив. Но и главное, что бы на выходе не выдало undefined.
Пупсь Сайбот, вот как я это сделал. Но ведь велосипед же Гг
let par1 = [1,2,3,4];
let par2 = ['a','b','c','d','e','f'];

let par3 = Math.max(par1.length, par2.length)*2;
let par4 = [par1,par2];
let par5 = [];

for(i=0;i<par3;i++){
let g = d[i%2][Math.floor(i/2)];
if(g != undefined) par5.push(g);
}

console.log(par5)

________
посл. ред. 04.11.2021 в 13:11; всего 2 раз(а); by popka_slonika
Нужно укоротить код до максимума.
Вот for -> можно заменить на while.
И еще вопрос).
Math.floor(a) 

Можно же укорачивать до
~~a

??
Или я что-то путаю?
var par1 = [1, 2, 3, 4];
var par2 = ['one', 'two', 'three'];

function merge(par1, par2)
{
return (par1.length > 0) ? [par1[0]].concat(merge(par2, par1.slice(1))) : par2;
}

console.log(merge(par1, par2));

Это тоже работает. И кода намного меньше. Но рекурсия для меня, это ещё не совсем то Гг

let a = [1, 2, 3, 4];
let b = ['one', 'two', 'three'];

console.info([...a, ...b]); //[1, 2, 3, 4, "one", "two", "three"]

________
посл. ред. 04.11.2021 в 14:28; всего 2 раз(а); by Вилы Выкидные
Вилы Выкидные (04.11.2021 в 14:26)

let a = [1, 2, 3, 4];
let b = ['one', 'two', 'three'];

console.info([...a, ...b]); //[1, 2, 3, 4, "one", "two", "three"]

Нее. Ты не понял.
Мне нужно перемешать массив. А не слить в поочередности.
Нужно [1, 'One', 2, 'Two']
Онлайн: 2
Время:
Gen. 0.103
(c) ByMAS.RU 2010-2025