【发布时间】:2022-01-13 11:14:50
【问题描述】:
我有一个带有嵌套对象的 javascript 对象:
{
"common": {
"setting1": "Value 1",
"setting2": 200,
"setting3": true,
"setting6": {
"key": "value",
"doge": {
"wow": ""
}
}
},
"group1": {
"baz": "bas",
"foo": "bar",
"nest": {
"key": "value"
}
},
"group2": {
"abc": 12345,
"deep": {
"id": 45
}
}
}
我必须将所有键作为嵌套数组。
我试过这个功能:
function getKeys(obj) {
return Object.keys(obj).map((key, keys) => {
if (typeof obj[key] !== 'object') return key;
return [key, getKeys(obj[key])];
});
}
得到了这个://
[
[ 'common', [ 'setting1', 'setting2', 'setting3', [Array] ] ],
[ 'group1', [ 'baz', 'foo', [Array] ] ],
[ 'group2', [ 'abc', [Array] ] ]
]
而不是像这样的预期结果:
[
[ 'common', [ 'setting1', 'setting2', 'setting3','setting6', ['key','doge', ['wow']],
[ 'group1', [ 'baz', 'foo', ['nest', ['key'] ],
[ 'group2', [ 'abc', 'deep', ['id'] ] ]
]
等等
请帮帮我
【问题讨论】:
-
输出看起来正确吗?从你的角度来看它有什么问题?你在节点上运行这个吗?
-
尝试使用
JSON.stringify(output)再次控制台记录结果。 nodejs 提示可能不会显示对象的所有详细信息。 -
@evolutionxbox 是的,它看起来正确,但不考虑多个嵌套对象。它必须是 [array] - 另一个嵌套键。是的,它是节点
-
为什么
key会在一个单独的数组中然后doge? -
@Nenad Vracar 我的错
标签: javascript arrays object nested