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

如何在数组对象中查找项
EN

Stack Overflow用户
提问于 2012-02-17 14:28:15
回答 3查看 3.3K关注 0票数 0

我在jquery中有数组对象,其中有n个项

代码语言:javascript
运行
复制
array={id:1, name:x};
array={id:2, name:y};
array={id:3, name:z};
.
.
.
.
array={id:n, name:n};

现在我必须在这个数组对象中找到特定的项目,因为我不知道项目的索引。

代码语言:javascript
运行
复制
if(array.id==item)
{
// change array.name=somename;
}
else
{
//add new value into array
array.push({id=item,name=somename});
}

在不使用项目索引的情况下,我在foreach中是否有任何选项或任何其他方法来在jquery中查找项目?

EN

回答 3

Stack Overflow用户

发布于 2012-02-17 14:38:13

您可以更改数组,使其更像一个字典。这样,您就不必搜索整个数组,而只需执行一次查找。

代码语言:javascript
运行
复制
dictionary = {};
dictionary[1] = {name:x};
dictionary[2] = {name:y};
...
dictionary[id] = {name:somename};

现在你不必检查id是否存在,如果它存在,它将替换它,如果它不存在,则创建一个新的id。如果你想检查它是否存在,只需使用typeof方法并检查它是否未定义。

票数 0
EN

Stack Overflow用户

发布于 2012-02-17 14:42:44

这可能会回答你的问题:Leveraging JQuery find or inArray method to find an item in an array

阅读第一个答案的注释。

票数 0
EN

Stack Overflow用户

发布于 2012-02-17 14:45:24

inArray方法只匹配确切的对象,所以如果对象是相同的,那么你可以像这样使用它;

代码语言:javascript
运行
复制
if(jQuery.inArray({id: item,name: somename})!=-1)
 array.push({id: item,name: somename});

但是如果你只想检查id,你可以使用grep来选择id为的对象,如下所示:

代码语言:javascript
运行
复制
if(jQuery.grep( array, function(a){return a.id==item}).length ==1)
 array.push({id: item,name: somename});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9323867

复制
相关文章

相似问题

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