如何从嵌套对象获取键值
我在下面的对象中尝试获取所有id值。
[{ "type": "test",
"id": "100",
"values": {
"name": "Alpha"
},
"validations": []
}, {
"type": "services",
"validations": [{
"id": "200",
"name": "John",
"selection": [{
"id": "300",
"values": {
"name": "Blob"
}
}]
}]
}]
使用以下代码,我仅获得第一个id值。有没有办法从嵌套对象中获取所有id值,而无需使用任何外部模块。
for (var prop in obj) { console.log(prop)
if (prop === key) {
set.push(prop);
}
}
预期产量
[100,200,300] //all id values
回答:
您可以使用如下所示的JavaScript函数来获取嵌套属性:
function findProp(obj, key, out) { var i,
proto = Object.prototype,
ts = proto.toString,
hasOwn = proto.hasOwnProperty.bind(obj);
if ('[object Array]' !== ts.call(out)) out = [];
for (i in obj) {
if (hasOwn(i)) {
if (i === key) {
out.push(obj[i]);
} else if ('[object Array]' === ts.call(obj[i]) || '[object Object]' === ts.call(obj[i])) {
findProp(obj[i], key, out);
}
}
}
return out;
}
检查此小提琴以获取可行的解决方案。
以上是 如何从嵌套对象获取键值 的全部内容, 来源链接: utcz.com/qa/399586.html