在 JavaScript 中,可以使用递归函数来遍历无限层级的对象,并找到所需的值。具体实现方式如下:
- 定义一个函数,该函数接收两个参数:要遍历的对象和要查找的值的键。
- 在函数内部,使用 for...in 或 Object.keys() 来遍历对象的每个属性。
- 对于每个属性,判断其类型,如果是对象,则调用自身函数继续遍历该对象;如果是需要的键,则将该属性值存入数组中。
- 在函数执行完成后,返回数组。
示例代码如下:
function getValuesByKey(obj, key) {
let arr = [];
for (let prop in obj) {
if (obj.hasOwnProperty(prop)) {
if (typeof obj[prop] === 'object') {
arr = arr.concat(getValuesByKey(obj[prop], key));
} else if (prop === key) {
arr.push(obj[prop]);
}
}
}
return arr;
}
使用时,可以这样调用:
let myObj = {...};
let values = getValuesByKey(myObj, 'key');
console.log(values); // 输出结果为数组
上面的代码将会返回一个包含所有找到的键为 "key" 的属性值的数组。