TypeScript - 根据属性值从数组中取出对象

新手上路,请多包涵

我的数组如下所示:

 array = [object {id: 1, value: "itemname"}, object {id: 2, value: "itemname"}, ...]

我所有的对象都具有相同的属性,但具有不同的价值。

有没有一种简单的方法可以为该数组使用 WHERE 语句?

取 object.id = var 的对象

还是我只需要遍历整个数组并检查每个项目?我的数组有超过 100 个条目,所以我想知道是否有更有效的方法

原文由 Nicolas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 890
2 个回答

使用 Array.find

 let array = [
    { id: 1, value: "itemname" },
    { id: 2, value: "itemname" }
];

let item1 = array.find(i => i.id === 1);

MDN 上的 Array.find: https ://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find

原文由 Saravana 发布,翻译遵循 CC BY-SA 3.0 许可协议

您必须循环遍历数组,但是如果您制作一个哈希映射以将每个 id 链接到一个索引并保存它,您只需执行一次,因此您可以直接引用之后的任何对象:

 var idReference = myArray.reduce(function( map, record, index ) {
    map[ record.id ] = index;
    return map;
}, {});

var objectWithId5 = myArray[ idReference["5"] ];

这确实假设所有 id 都是唯一的。

原文由 Shilly 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题