2020-07-03
描述
基于 keys
数组,返回嵌套在一个 JSON 对象中的目标值。
提示
- 将嵌套在 JSON 对象中你需要的
keys
做为一个数组进行比对 - 使用
Array.prototype.reduce()
从 JSON 嵌套对象中逐一获取对应的值 - 如果键存在于对象中,就返回目标值,否则的话就返回
null
代码
const deepGet = (obj, keys) => keys.reduce((xs, x) => (xs && xs[x] ? xs[x] : null), obj);
示例
获取指定键的值:
let index = 2;
const data = {
foo: {
foz: [1, 2, 3],
bar: {
baz: ['a', 'b', 'c']
}
}
};
deepGet(data, ['foo', 'foz', index]); // 3
deepGet(data, ['foo', 'bar', 'baz', 8, 'foz']); // null
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于