Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 使用Jquery在对象数组中查找值_Javascript_Jquery - Fatal编程技术网

Javascript 使用Jquery在对象数组中查找值

Javascript 使用Jquery在对象数组中查找值,javascript,jquery,Javascript,Jquery,我有一个对象数组,比如项。我想查找具有namexyz的项 目前,我编写了一个for循环 for(var i = 0; i < items.length; i++) { if( items[i].name == "xyz" ) { found = true; break; } } 你可以用 var matchingItems = items.filter(function(v){return v.name=="xyz"}); 或者

我有一个对象数组,比如
。我想查找具有
name
xyz的项

目前,我编写了一个for循环

for(var i = 0; i < items.length; i++)
{
    if( items[i].name == "xyz" ) 
    {
        found = true;
        break;
    }
}
你可以用

var matchingItems = items.filter(function(v){return v.name=="xyz"});
或者使用jQuery(为了更大的兼容性,就像许多数组函数一样,或者在IE8上不可用):

使用:

使用jQuery,您需要执行以下操作,然后检查长度(
$.grep(items,function(el){return el.name==“xyz”})。长度>1
)-这不是最佳解决方案。如果要为那些不支持
some
(并且不想使用)的浏览器使用库解决方案,请使用的
any
(函数($){
(function( $ ) {
    $.find = function( array, property, key ) {
        var found = false;
        for(var i = 0; i < array.length; i++)
        {
            if( array[i][property] == key ) 
            {
                found = true;
                break;
            }
        }
        return found ? i : -1;
    };
})( jQuery );
$.find=函数(数组、属性、键){ var=false; 对于(var i=0;i
用法:
$.find(items,“name”,“xyz”)

使用jQuerys inArray示例

可能会对您有所帮助,例如:

$.grep(yourArray, function(n) { 
    return n.name == "xyz"; 
});

这将返回“搜索字符串”的索引


如果没有找到,它将返回-1。

IE8上没有一些。@dystroy:我已经提到了两种针对有缺陷浏览器的解决方案。我在评论时没有提到这些。看起来这仍然是一个需要的精度。非常感谢!这非常简洁高效。@KevindraSingh:您不想返回布尔值而不是数组吗?我想要
对象。它返回的是相同的。您不会将此函数置于
$上。fn
@huMptyduMpty:不,这只是
索引。
items.some(function(el) { return el.name == "xyz"; })
(function( $ ) {
    $.find = function( array, property, key ) {
        var found = false;
        for(var i = 0; i < array.length; i++)
        {
            if( array[i][property] == key ) 
            {
                found = true;
                break;
            }
        }
        return found ? i : -1;
    };
})( jQuery );
$.grep(yourArray, function(n) { 
    return n.name == "xyz"; 
});
    var arr = ["abc", "xyz" ];
        if($.inArray("abc",arr) > 0){
          return true;
        }
else 
return false