Javascript 角度-展平相同类型对象的数组
展平具有此类型接口的对象数组的最干净方法是什么:Javascript 角度-展平相同类型对象的数组,javascript,angular,flatten,Javascript,Angular,Flatten,展平具有此类型接口的对象数组的最干净方法是什么: Interface { Item: Item, SubItems: Array<Item> } 最终结果应该是所有这些相同类型对象的单个数组,并按如下顺序排列: first object -> Item -> SubItems second object -> Item -> SubItems 因此,在我的示例中,我应该有: flattenedArray = [{id: "bla1"}, {id: "b
Interface {
Item: Item,
SubItems: Array<Item>
}
最终结果应该是所有这些相同类型对象的单个数组,并按如下顺序排列:
first object -> Item -> SubItems
second object -> Item -> SubItems
因此,在我的示例中,我应该有:
flattenedArray = [{id: "bla1"}, {id: "bla2"}, {id: "bla3"}, {id: "bla4"}, ...]
很好用,你能帮我解释一下缩小部分吗?我读了它的功能,但老实说,我并没有完全理解它!感谢answerreduce对数组进行迭代,并执行一个特殊函数,该函数接受一个累加器并返回一个新的累加器,该累加器将传递给下一个函数执行。你所要做的就是用…acc复制以前的值,并用…cur添加新的值,这可能是读取该线程的副本,但我在这里给出的答案似乎更干净、更优雅!
flattenedArray = [{id: "bla1"}, {id: "bla2"}, {id: "bla3"}, {id: "bla4"}, ...]
myArray.map(val => [val.Item, ...val.SubItems]).reduce((acc, cur) => [...acc, ...cur])