如何通过其中一个属性在数组中查找适当的对象

问题描述 投票:1回答:3

说,我有那么简单的对象数组。

var x = [
            {
                id:      1001
                name:    "Jim",
                surname: "Beam"
            },
            {
                id:      1002
                name:    "Jack",
                surname: "Black"
            }
        ]

每个对象都有idnamesurname属性。

如何在x数组中找到id属性等于1002的对象?

javascript json
3个回答
2
投票

最简单的方法是定义一个带谓词的find函数

function find(arr, predicate) { 
  for (var i = 0; i < arr.length; i++) {
    if (predicate(arr[i]) {
      return arr[i];
    }
  }
  return null;
}

然后你可以在数组上使用这个方法

var found = find(x, function (item) { item.id === 1002 });

1
投票

一个简单的循环就足够了:

for(var i=0, len=x.length; i < len; i++){
    if( x[i].id === 1002){
        //do something with x[i]
    }
}

即使你正在处理json,也要记住它只是数组,对象和基元的层次结构。


0
投票

从ES2015开始,JavaScript数组有findfindIndex方法,这两种方法都很容易进行polyfilled(参见那些用于polyfill的MDN链接)。

在你的情况下,你使用find

var found = x.find(function(entry) { return entry.id == 1002; });

或者还使用其他(非可聚合的)ES2015功能:

const found = x.find(entry => entry.id == 1002);
© www.soinside.com 2019 - 2024. All rights reserved.