gpt4 book ai didi

javascript - 按属性名称递归搜索对象中的值

转载 作者:可可西里 更新时间:2023-11-01 02:15:45 25 4
gpt4 key购买 nike

我正在构建一个实用程序函数,该函数应搜索属性名称并在找到后返回其值。它应该递归地执行此操作:

// Function
util.findVal = (object, propName) => {
for (let key in object) {
if (key === propName) {
console.log(propName)
console.log(object[key])
return object[key]
} else {
util.findVal(object[key], propName)
}
}
}

// Input
object: {
photo: {
progress: 20
}
}

// Usage
util.findVal(object, 'progress')

然而,控制台日志永远消失,浏览器崩溃。我做错了什么?

编辑:

这就是我调用函数的方式:

// Input

item: {
photo: {
file: {},
progress: 20
}
}

this.findProgress(item)

methods: {
findProgress (item) {
return util.findVal(item, this.propName)
}
}

最佳答案

你可以使用 Object.keys并用 Array#some 迭代.

function findVal(object, key) {
var value;
Object.keys(object).some(function(k) {
if (k === key) {
value = object[k];
return true;
}
if (object[k] && typeof object[k] === 'object') {
value = findVal(object[k], key);
return value !== undefined;
}
});
return value;
}

var object = { photo: { progress: 20 }};
console.log(findVal(object, 'progress'));

关于javascript - 按属性名称递归搜索对象中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40603913/

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