2020-07-08
描述
在一个嵌套的 JSON 对象中,根据给定的键返回对应的值。
提示
- 使用
in
运算符检测target
是否存在obj
中 - 如果存在,返回值
obj[target]
- 否则的话使用
Object.values(obj)
和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
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于