根据属性值在数组中定位对象
考虑一个数组,例如:
vendors = [{ Name: 'Magenic', ID: 'ABC' }, { Name: 'Microsoft', ID: 'DEF' }, // and so on... ];
如何高效确定该数组中是否存在“Magenic”?以下是如何在不诉诸显式循环的情况下完成此任务,这在处理大型数据集时特别有用:
利用 some 方法查找单个匹配元素:
if (vendors.some(e => e.Name === 'Magenic')) { // A matching object is found! }
检索使用 find 匹配对象:
if (vendors.find(e => e.Name === 'Magenic')) { // Returns the object itself, not just a boolean. }
查找第一个匹配元素的索引findIndex:
const i = vendors.findIndex(e => e.Name === 'Magenic'); if (i > -1) { // Indicates a matching object found at index i. }
如果需要多个匹配对象,请使用过滤器:
if (vendors.filter(e => e.Name === 'Magenic').length > 0) { // Returns all objects that satisfy the condition. }
对于不支持箭头功能的浏览器:
if (vendors.filter(function(e) { return e.Name === 'Magenic'; }).length > 0) { // Same as above, using traditional function syntax. }
以上是如何根据属性值高效查找JavaScript数组中的对象?的详细内容。更多信息请关注PHP中文网其他相关文章!