Задать вопрос
@Alex10214

Как объединить массив массивов?

Приветствую, у меня есть задача, но что-то не получается решить. Я только учусь так что извините может за глупый вопрос.
У меня есть два массива:
[
 ['1', '2', '3', '4']
 ['5', '6', '7', '8']
 ['9', '10', '11', '12']
]

[
 ['a', 'c', 'v', 's']
 ['l', 'k', 'j', 'h']
 ['f', 'z', 'b', 'm']
]

А мне нужно сделать вот такой массив:
[
 ['1', '2', '3', '4', 'a', 'c', 'v', 's']
 ['5', '6', '7', '8', 'l', 'k', 'j', 'h']
 ['9', '10', '11', '12', 'f', 'z', 'b', 'm']
]

У меня получается только через циклы for в for и в for и дальше я просто уже теряюсь.. А хотелось бы увидеть как должно быть, чтоб изучить логику и понять как нужно. Так как у меня вообще не получается.
  • Вопрос задан
  • 112 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Массивы сложить в массив (const arrs = [ arr1, arr2 ];), дальше есть варианты:

const result = arrs[0].map((_, i) => arrs.flatMap(arr => arr[i]));

или

const result = arrs.reduce((acc, arr) => (
  arr.forEach((n, i) => (acc[i] ??= []).push(...n)),
  acc
), []);

или

const result = [];

for (const arr of arrs) {
  for (const [ i, n ] of arr.entries()) {
    if (!result[i]) {
      result[i] = [];
    }

    for (const m of n) {
      result[i][result[i].length] = m;
    }
  }
}
Ответ написан
Aetae
@Aetae Куратор тега JavaScript
Тлен
lodash:
var a = [
  ['1', '2', '3', '4'],
  ['5', '6', '7', '8'],
  ['9', '10', '11', '12']
];

var b = [
  ['a', 'c', 'v', 's'],
  ['l', 'k', 'j', 'h'],
  ['f', 'z', 'b', 'm']
];

zipWith(a, b, concat);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы