@ivan_kholodov

Как вложенный массив сделать плоским и назначить элементам уникальные id?

Есть такой массив:

[
  [ {id: 1}, {id: 2}, {id: 3} ],
  [ {id: 1}, {id: 2}, {id: 3} ],
  [ {id: 1}, {id: 2}, {id: 3} ]
]

Необходимо сделать его одномерным и поменять у каждого элемента id, чтобы получилось примерно так:

[{id: 1}, {id: 2}, {id: 3}, {id: 4}, {id: 5}, {id: 6}, {id: 7}, {id: 8}]

Может, с помощью map, потом reduce?

renderLists = (list) => {
  return list.map(item => {
     и вот тут не знаю
  }
}
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Коротко:

const result = arr.flat().map((n, i) => ({ ...n, id: i + 1 }));

Длинно:

const result = [];

for (const n of arr) {
  for (const m of n) {
    result.push({
      ...m,
      id: -~result.length,
    });
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы