gpt4 book ai didi

javascript - 复杂对象值解析

转载 作者:行者123 更新时间:2023-11-29 23:53:26 25 4
gpt4 key购买 nike

我有一个像这样的对象:

var exampleObject = {
listItem1: 1,
subList: {
subSubList: {
subSubListItem1: 1,
subSubListItem2: 'green'
},
subListItem1: 'blue'
}
};

该对象的值可以是数字、字符串、数组和其他对象。我需要将字符串路径数组获取到值等于数字 1 的键值对。例如,它是:

[
"listItem1",
"subList > subSubList > subSubListItem1"
]

我如何仅使用 JavaScript 从该结构的所有对象接收此数组?

最佳答案

您可以检查项目是否为对象并迭代键。如果没有,则找到一个结尾并将实际路径添加到结果集中。

function getPath(object) {
function iter(o, p) {
if (o && typeof o === 'object') {
Object.keys(o).forEach(function (k) {
iter(o[k], p.concat(k));
});
} else if (o === 1){
result.push(p.join(' > '));
}
}

var result = [];
iter(object, []);
return result;
}

var exampleObject = { listItem1: 1, subList: { subSubList: { subSubListItem1: 1, subSubListItem2: 'green' }, subListItem1: 'blue' } };

console.log(getPath(exampleObject));

关于javascript - 复杂对象值解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248707/

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