angular - сглаживать массив объектов одного типа - PullRequest
0 голосов
/ 02 октября 2018

Какой самый чистый способ сгладить массив объектов, имеющих интерфейс этого типа:

Interface {
 Item: Item,
 SubItems: Array<Item>
}

пример массива:

    myArray = [
{Item: {id: "bla1"}, SubItems: [{id: "bla2"}, {id: "bla3"}, {id: "bla4"}]}, 
{Item: {id: "bla5"}, SubItems: [{id: "bla6"}, {id: "bla7"}, {id: "bla8"}]}
]

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

first object -> Item -> SubItems
second object -> Item -> SubItems

, поэтому в моем примере у меня должно быть это:

flattenedArray = [{id: "bla1"}, {id: "bla2"}, {id: "bla3"}, {id: "bla4"}, ...]

1 Ответ

0 голосов
/ 02 октября 2018
myArray.map(val => [val.Item, ...val.SubItems]).reduce((acc, cur) => [...acc, ...cur])
...