【发布时间】:2023-01-27 00:55:20
【问题描述】:
我正在尝试搜索一系列复杂对象,并找到我想在平面数组中收集的某些有价值的属性。
我已经尝试了很多方法,但似乎都不起作用。
我有一个这样的数组,我想找到所有的 ccc 值,
let arr = [
{ aaa: { bbb: { ccc: 11 } } },
{ aaa: { bbb: { eee: { ccc: 12 } } } },
{ aaa: { bbb: 101} },
{ },
{ aaa: { bbb: { ccc: 511 } } },
{ aaa: { bbb: { ccc: 77 } } },
{ aaa: 24 },
{ aaa: { bbb: { ccc: {ddd: 11 } } } },
]
最新测试我试过这段代码,它不起作用:
function traverse(obj) {
const objEntries = Object.entries(obj)
if (objEntries.length === 0) {
return 0
} else {
const [key, value] = objEntries[0]
if (key === "bbb") {
const [key, value] = objEntries[0]
if (key === "ccc" && typeof (value) === "number") {
return value
} else if (typeof (value) === "number") {
return 0
}
return traverse(value)
}
}
}
let result = [];
let arr = msg.arr;
arr.forEach(a => {
result.push(traverse(a))
})
msg.payload = result;
我期待一个结果像这样的数组
结果 = [11, 12, 0, 0, 511, 77, 0, 0]
【问题讨论】:
-
这是在任何特定语言中,如果是,是哪种语言?