javascript - 从对象和键数组中查找值

标签 javascript ecmascript-6

<分区>

我有一个键数组 ['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 将是对象 bcurr 将是数组中的第一个元素,即 '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);

关于javascript - 从对象和键数组中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65807263/

相关文章:

javascript - 带有模式的 grunt-usemin 仅替换第一个匹配项

JavaScript 正则表达式(缺少 '/' ),我该如何解决这个问题?

javascript - 第二次加载时 XMLHttpRequest 状态 0

javascript - 在 fetch api 中的 javascript 中重新排列响应

javascript - 如果我从选定的选项中获取数组的名称,如何访问数组?

javascript - jQuery 不透明度缓慢淡入淡出

javascript从数字递增到字符串

javascript - Js 使用带有 "this"关键字的 ecma 脚本 6 解构

javascript - 我们什么时候可以避免使用构造函数来初始化状态?

javascript - React.js : Set a Default value into a prop