javascript - 在具有特定属性的字典中查找值

标签 javascript ecmascript-6 ecmascript-5

假设我有一本像这样的字典

objDict = {
  id1 : { name: 'someObj1', id: 'someId1' },
  id2 : { name: 'someObj2', id: 'someId2' },
  id3 : { name: 'someObj3', id: 'someId3' },
}

如果我想在该字典的值中搜索“id”属性的属性“someId2”..我如何才能在找到它后获取整个对象?

除了使用 for-in 循环迭代字典之外,我真的想不出一个好的方法。我在考虑使用 Object.values() 但即便如此,我也想不出一种方法来使用它来获取包含 someId2 的整个对象。我只能确定该属性是否存在。

我只是想知道是否有比 for-in 循环更好的方法。谢谢

最佳答案

您可以使用 Object.keys() 获取所有键,然后遍历这些键并根据所需的 ID 选择您想要的对象。

var objDict = {
  id1 : { name: 'someObj1', id: 'someId1' },
  id2 : { name: 'someObj2', id: 'someId2' },
  id3 : { name: 'someObj3', id: 'someId3' },
};
var obj;

Object.keys(objDict).forEach(x => obj = objDict[x].id === 'someId2' ? objDict[x]: obj);

console.log(obj);

关于javascript - 在具有特定属性的字典中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46374993/

相关文章:

javascript - 复选框创建在 ie7 中不起作用

javascript - 用reduce代替filter来计算范围内的对象

javascript - ES6 组成。如何定义某种 setter/getter

javascript - Javascript 中 with 语句的 future

javascript - 无法识别 ES5 导出函数

javascript - 完成后如何在动态PHP网站上高效实现AJAX

javascript - 当进度条达到100%时如何重定向url

javascript - Angular 通用 - 语法错误 : Unexpected token import

javascript - 计算 Javascript 数组中条纹的最佳方法是什么?

javascript - 在异步回调中调用 super