【发布时间】:2021-04-14 03:08:37
【问题描述】:
假设我在这里有一个这样的数组:
const data = {
id: "helloworld",
type: "Collection",
_embedded: {
items: [{
fields: [{
id: "bla",
fields: [{
id: "nice",
value: 100
}]
}, {
id: "no",
fields: [{
id: "js",
value: true
}]
}]
},
{
fields: [{
id: "od",
fields: [{
id: "adeb",
value: 456
}]
}, {
id: "def",
fields: [{
id: "frft",
value: 77
}]
}]
}
]
}
}
我想要达到的目标:
-获取 fields 数组中所有项目的扁平化列表。所以最后我需要一个包含字段数组中每个项目的列表。 - 解决方案应该是独立的级别。所以真正找到fields数组的所有项应该越来越深入。
目前我们有:
const flattenedProductFieldsList = data?._embedded?.items
.flat(2)
.map((el) => el.fields)
.filter((el) => el)
.flat(2)
.map((el) => el._embedded)
.filter((el) => el)
.flat(2)
.filter((el) => el)
.map((el) => el.items)
.filter((el) => el)
.flat(2)
.map((el) => el.fields)
.filter((el) => el)
.flat(2);
但这当然不好,因为我们被限制在特定的层次结构中。而且这种扁平化一点也不好。
有好的解决办法吗?
【问题讨论】:
标签: javascript arrays flat