我有:
var array = [ { key: '1' }, { key: '2' }, { key: '3' } ]
我想:
var obj = getFirstItem(array, 'key', '2');
结果:
obj = { key: '2' }
在JavaScript或jQuery中是否有这样的功能?
答案 0 :(得分:3)
我不知道内置函数。但是,自己实现它将是微不足道的:
var data = [ { key: '1' }, { key: '2' }, { key: '3' } ];
function getFirstItem(input, key, value) {
for(var i = 0; i < input.length; i++) {
if(input[i][key] === value)
return input[i];
}
}
console.log(getFirstItem(data, "key", 2));
答案 1 :(得分:1)
我认为jQuery在这里并不是必需的。功能很简单:
function getFirstItem(arr, k, v){
for(var i=0;i<arr.length;i++){
var obj = arr[i];
if(obj[k] == v)
return obj;
}
return null;
}
答案 2 :(得分:0)
就像其他人说的那样,自己循环遍历阵列非常简单。
但是在JS 1.5中有一个过滤方法(在IE8及更低版本中显然不支持,尽管该链接具有兼容性工作)
var myarray = [ { key: '1' }, { key: '2' }, { key: '3' } ]
function getFirstItem(myarray, key) {
var result = myarray.filter(function(element, index, array) {
return element.key == key;
});
if (result.length)
return result[0];
return null;
}
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/filter