gpt4 book ai didi

javascript - 如何从对象数组中获取键和子键?

转载 作者:行者123 更新时间:2023-12-01 15:22:11 26 4
gpt4 key购买 nike

我有以下对象数组。

const array = [{
field1: "val1",
field2: "val2",
field3: {
field1: "val1",
field2: "val2"
}
},
{
field1: "val1",
field2: "val2",
field3: {
field1: "val1"
}
}]

我需要低于输出
const output = [{
key: "field1",
subkeys: []
},
{
key: "field2",
subkeys: []
},
{
key: "field3",
subkeys: ["field1", "field2"]
}]

我可以使用这个获得顶级字段
const keys = array.map(x => Object.keys(x)[0]);

但无法访问内部的。

请帮助...谢谢!

最佳答案

您可以在顶层减少对象键数组,然后检查此键的值是否为对象 - 检索其嵌套键,否则只需保留空的子键数组

const array = [{
field1: "val1",
field2: "val2",
field3: {
field1: "val1",
field2: "val2"
}
},
{
field1: "val1",
field2: "val2",
field3: {
field1: "val1"
}
}]

const result = array.map(item => {
return Object.keys(item).reduce((acc, rec) => {
if(typeof item[rec] === 'object') {
return [...acc, {key: rec, subkeys: Object.keys(item[rec])}]
}
return [...acc, {key: rec, subkeys: []}]
}, [])
})

console.log(result)

关于javascript - 如何从对象数组中获取键和子键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61750169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com