通过对象值选择数组索引

Jac*_*sen 3 javascript arrays

如果我有这样的数组:

var array = [{ID:1,value:'test1'},
             {ID:3,value:'test3'},
             {ID:2,value:'test2'}]
Run Code Online (Sandbox Code Playgroud)

我想通过ID选择一个索引。

即,我想以某种方式选择ID:3并获取{ID:3,value:'test3'}

什么是最快,最轻巧的方法?

McG*_*gle 5

用途array.filter

var results = array.filter(function(x) { return x.ID == 3 });
Run Code Online (Sandbox Code Playgroud)

它返回一个数组,因此需要获取对象本身[0](如果您确定对象存在):

var result = array.filter(function(x) { return x.ID == 3 })[0];
Run Code Online (Sandbox Code Playgroud)

否则某种辅助函数:

function getById(id) {
    var results = array.filter(function(x) { return x.ID == id });
    return (results.length > 0 ? results[0] : null);
}
var result = getById(3);
Run Code Online (Sandbox Code Playgroud)