javascript按对象键过滤并返回嵌套对象键的值

标签 javascript arrays ecmascript-6 javascript-objects

我想使用条件返回对象内元素之一的键值:

const raw = {
  item1: { name: 'sdfd1', otherStuff: { book:'sdfd11' } },
  item2: { name: 'sdfd2', otherStuff: { book:'sdfd22' } },
  item3: { name: 'sdfd3', otherStuff: { book:'sdfd33' } }
};


var anotherOne = {
  country1 : { city: 'one', item: 'item3'},
  country2 : { city: 'two', item: 'item4'}
}

var searchTerm = anotherOne.country1.item; // item3
var secondTerm = someUser.otherInfo // 'otherStuff'
var result = Object.keys(raw)
  .filter(key => { 
  if (key === searchTerm){
   return raw[searchTerm][secondTerm].book
  }})

  console.log('result:' result); // sdfd33

基本上,我想在对象 raw 的键中查找 searchTerm,并返回 book 键的值。在此示例中,它应返回 sdfd33。 我的尝试没有返回任何内容。

更新:

更新了问题。

最佳答案

在通过变量访问对象键时使用方括号[]。 希望在这种情况下不需要 filterObject.keys

const raw = {
  item1: {
    name: 'sdfd1',
    book: 'sdfd11'
  },
  item2: {
    name: 'sdfd2',
    book: 'sdfd22'
  },
  item3: {
    name: 'sdfd3',
    book: 'sdfd33'
  }
};

var searchTerm = 'item3';
//using square bracket when acceing key using variable
var result = raw[searchTerm].book
console.log(result);

关于javascript按对象键过滤并返回嵌套对象键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48980942/

相关文章:

arrays - 是否可以对可选的快速数组进行编码?

javascript - 使用 props 添加背景到 div

javascript - EcmaScript语法中的[Yield, Await, In, Return]是什么

javascript - 指定 Math.atan2 的来源

javascript - 重置自动完成组合框

iphone - 你如何在 Swift 中连接两个数组并保持每个数组的顺序? (快速交错数组)

javascript - 平均二维数组中的连续值对

javascript - JavaScript 中 const 关键字的用法

javascript - 猴子修补一个立即调用的命名函数

javascript - 添加和删​​除单击/悬停事件处理程序 jQuery