Loading...
JavaScript | Слияние двух массивов.
И так, опять вопрос. Нужно два массива сделать одним. Есть
javascript
   let a = ['one','two','three']; let b = [1,2,3];   
Нужно сделать:
javascript
   ['one','1','two','2','three','3'];   
Голова сегодня вообще не хочет работать.
________
посл. ред. 04.11.2021 в 13:05; всего 1 раз(а); by popka_slonika
Ах да. Массивы могут быть разной длины.
popka_slonika (04.11.2021 в 13:04) И так, опять вопрос. Нужно два массива сделать одним. Есть
javascript
   let a = ['one','two','three']; let b = [1,2,3];   
Нужно сделать:
javascript
   ['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.
Пупсь Сайбот , вот как я это сделал. Но ведь велосипед же Гг
javascript
   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.
И еще вопрос).
javascript
   Math.floor(a)   
Можно же укорачивать до
javascript
   ~~a   
?? Или я что-то путаю?
javascript
   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));   
Это тоже работает. И кода намного меньше. Но рекурсия для меня, это ещё не совсем то Гг
javascript
   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)
javascript
   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']
Онлайн: 0
Время:
Gen. 0.1115
(c) Bym.Guru 2010-2025