Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按属性值的数组选择器函数_Javascript_Jquery - Fatal编程技术网

Javascript 按属性值的数组选择器函数

Javascript 按属性值的数组选择器函数,javascript,jquery,Javascript,Jquery,我有: var array = [ { key: '1' }, { key: '2' }, { key: '3' } ] 我想: var obj = getFirstItem(array, 'key', '2'); 因此: obj = { key: '2' } JAVScript或jQuery中有这样的函数吗?我不知道有内置函数。但是,自己实现它是很简单的: var data = [ { key: '1' }, { key: '2' }, { key: '3' } ]; function

我有:

var array = [ { key: '1' }, { key: '2' }, { key: '3' } ]
我想:

var obj = getFirstItem(array, 'key', '2');
因此:

obj = { key: '2' }

JAVScript或jQuery中有这样的函数吗?

我不知道有内置函数。但是,自己实现它是很简单的:

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));
var data=[{key:'1'},{key:'2'},{key:'3'}];
函数getFirstItem(输入、键、值){
对于(变量i=0;i
我认为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;
}
函数getFirstItem(arr、k、v){
对于(var i=0;i

来说,就像其他人说的那样,自己循环数组非常简单

但是JS1.5中有一个过滤方法(显然IE8和更低版本不支持,尽管链接有一个兼容性解决方案)


不应该有同名的参数和循环变量。您可以看看JSLINQ,这样就可以了
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;
}