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']
Онлайн: 4
Время:
Gen. 0.1221
(c) Bym.Guru 2010-2025