获取嵌套对象中的值
根据给定的键,在嵌套的 JSON 对象中获取目标值。
- 使用
in
运算符检查obj
中是否存在target
。 - 如果找到,返回
obj[target]
的值。 - 否则,使用
Object.values()
和Array.prototype.reduce()
在每个嵌套对象上递归调用dig
,直到找到第一个匹配的键/值对。
const dig = (obj, target) =>
target in obj
? obj[target]
: Object.values(obj).reduce((acc, val) => {
if (acc !== undefined) return acc;
if (typeof val === 'object') return dig(val, target);
}, undefined);
const data = {
level1: {
level2: {
level3: 'some data'
}
}
};
dig(data, 'level3'); // 'some data'
dig(data, 'level4'); // undefined