首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Jquery在对象数组中查找值

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

Stack Overflow用户
提问于 2012-12-14 19:59:48
回答 6查看 85关注 0票数 0

我有一个对象数组,名为items。我想找到有name xyz的物品。

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

代码语言:javascript
运行
复制
for(var i = 0; i < items.length; i++)
{
    if( items[i].name == "xyz" ) 
    {
        found = true;
        break;
    }
}

是否可以使用jquery将此循环缩短为一行语句?如下所示:

代码语言:javascript
运行
复制
$.find(items, "name", "xyz");
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-12-14 20:03:05

您可以使用

代码语言:javascript
运行
复制
var matchingItems = items.filter(function(v){return v.name=="xyz"});

或者使用jQuery (为了获得更好的兼容性,就像许多数组函数一样,filtersome在IE8上不可用):

代码语言:javascript
运行
复制
var matchingItems = $.grep(items, function(v){return v.name=="xyz"});
票数 1
EN

Stack Overflow用户

发布于 2012-12-14 20:05:45

类似于:

代码语言:javascript
运行
复制
$.grep(yourArray, function(n) { 
    return n.name == "xyz"; 
});
票数 1
EN

Stack Overflow用户

发布于 2012-12-14 20:03:41

使用native some method

代码语言:javascript
运行
复制
items.some(function(el) { return el.name == "xyz"; })

使用jQuery时,您需要执行类似$.grep的操作,然后检查长度($.grep(items, function(el){ return el.name=="xyz"; }).length > 1) --这不是最佳解决方案。如果您想为那些不支持some (并且不想使用the polyfill)的浏览器使用库解决方案,请使用Underscoreany

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13878281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档