Vextor-ltd
@Vextor-ltd
Webdeveloper

Как пойтись по массивам и собрать новые массивы?

Есть массив объектов:
const arrayOfObjTest = [
      {some1: 'someval', some2: 'someval', arr: [1, 2, 3]},
      {some1: 'someval', some2: 'someval', arr: [4, 5, 6, 1000]},
      {some1: 'someval', some2: 'someval', arr: [7, 8, 9]},
      {some1: 'someval', some2: 'someval', arr: [10, 11, 12]}
];

Нас интересует свойство arr, которое является массивом и может содержать какое угодно количество элементов. Необходимо на выходе получить массив массивов такого плана:
[
    [1, 4, 7],
    [2, 5, 8],
    [3, 6, 9],
    [0, 1000, 0]
]

Если значения нет, записываем 0.

Не понимаю, как тут создать новые массивы и поместить их в один основной:
newArr = [];
arrayOfObjTest.map((ar, i) => {
      ar.arr.map((item, i) => {
            newArr.push((item));
      });
});
console.log(newArr);


Что тут можно придумать? Ума не приложу.
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
// Найти наибольшую длину среди массивов – столько будет строк
const maxLength = Math.max(...arrayOfObjTest.map(el => el.arr.length));

// Подготовить массив
const result = [];

// Заполнить каждую из строк i-ми элементами
for (let i = 0; i < maxLength; i++) {
  result[i] = arrayOfObjTest.map(el => el.arr[i] || 0);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@k4r1m63k
const result = arrayOfObjTest.map(( { arr } ) => arr)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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