我有一个键数组 ['a', 'b', 'c', 'd']
和嵌套对象 { a: { b: { c: { d : '58' } } }
如何获取嵌套对象 '58'
的值?
我尝试过类似的方法,但我只从一个“级别”获得了值(value)
const a = ['a', 'b', 'c', 'd']
const b = { a: { b: { c: { d: '58' } } } }
const getValue = (a,b) => { return Object.values(b).find(key => a[key] === b[key]) }
.reduce()
方法可以提供帮助。
在数组上调用.reduce()
并将对象b
作为初始值传递给.reduce()
方法。 .reduce()
方法的回调函数应该只返回 acc[curr]
的结果。
在第一次调用时,acc
将是对象 b
而 curr
将是数组中的第一个元素,即 'a'
。所以第一次调用回调函数会返回b['a']
,即{ b: { c: { d: '58' } } }
。
const a = ['a', 'b', 'c', 'd'];
const b = { a: { b: { c: { d: '58' } } } };
const result = a.reduce((acc, curr) => acc[curr], b);
console.log(result);