gpt4 book ai didi

javascript - 遍历嵌套的javascript对象以识别空值属性

转载 作者:行者123 更新时间:2023-11-30 00:28:28 24 4
gpt4 key购买 nike

如果我有一个对象:

var dog= {
name: "Max",
age: 5,
sex: undefined,
details: {
color: "black",
breed: undefined
}
}

我想获取具有未定义值的属性的路径。我如何遍历所有属性,包括嵌套属性?

目前,我有一个没有嵌套属性的对象的 vanilla js 方法:

function getUndefinedPaths(o, name) {
var paths = [];
for (var prop in o) {
if (o[prop] === undefined) {
paths += name + "." + prop + "\n";
}
}
return paths;
}

// getUndefinedPaths(dog, "dog") only returns "dog.sex" and not "dog.details.breed" which is also undefined.

我卡住了。有人可以帮助解决如何在 js 对象的嵌套属性中获取那些未定义值的路径吗?我只是在 vanilla javascript 中尝试这个。提前致谢。

最佳答案

你可以像这样使用递归函数:

function getPath(obj, path) {

var props = [];

for(var key in obj) {

if(obj[key] === undefined) {
props.push(path + '.' + key);
}

if(obj[key] instanceof Object) {
props.push.apply(props, getPath( obj[key], path + '.' + key ));
}

}

return props;
}


var path = getPath(dog, 'dog');

这将返回一个 Array 路径到 undefined 属性

如有必要,您可以对生成的“Array”使用 join 来获取 String:

console.log(path.join('\n'));

关于javascript - 遍历嵌套的javascript对象以识别空值属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30550376/

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