gpt4 book ai didi

Javascript - 通过键检索值,包括嵌套对象

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

我正在尝试编写一个函数,该函数将通过键检索值,包括在嵌套对象中进行搜索。

这是我得到的:

function getByKey (obj, key) {
if(obj.hasOwnProperty(key)){
return obj[key];
}else{
for(var prop in obj){
if(typeof prop == "object" && prop !== null){
if(prop.hasOwnProperty(key)){
return prop[key];
}else{
return iterate(prop, key);
}
}
}
}

如果有人已准备好此功能并可以正常工作,或者可以修复我的功能,那就太好了。如果有人知道可以执行此操作的 Underscore 函数,那就太好了。

最佳答案

您可以使用迭代和递归的方式来搜索对象的属性。

function getByKey(obj, key) {
function iter(o) {
if (o !== null && typeof o === 'object') {
if (key in o) {
value = o[key];
return true;
}
return Object.keys(o).some(function (k) {
return iter(o[k]);
});
}
}

var value;
iter(obj);
return value;
}

var o = { a: 1, b: { c: 3, d: 4, e: { f: 5, g: 6 } } }

console.log(getByKey(o, 'f')); // 5
console.log(getByKey(o, 'b')); // { c: ... }
console.log(getByKey(o, 'd')); // 4
console.log(getByKey(o, 'q')); // undefined
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于Javascript - 通过键检索值,包括嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39618658/

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