我在jquery中有数组对象,其中有n个项
array={id:1, name:x};
array={id:2, name:y};
array={id:3, name:z};
.
.
.
.
array={id:n, name:n};现在我必须在这个数组对象中找到特定的项目,因为我不知道项目的索引。
if(array.id==item)
{
// change array.name=somename;
}
else
{
//add new value into array
array.push({id=item,name=somename});
}在不使用项目索引的情况下,我在foreach中是否有任何选项或任何其他方法来在jquery中查找项目?
发布于 2012-02-17 14:38:13
您可以更改数组,使其更像一个字典。这样,您就不必搜索整个数组,而只需执行一次查找。
dictionary = {};
dictionary[1] = {name:x};
dictionary[2] = {name:y};
...
dictionary[id] = {name:somename};现在你不必检查id是否存在,如果它存在,它将替换它,如果它不存在,则创建一个新的id。如果你想检查它是否存在,只需使用typeof方法并检查它是否未定义。
发布于 2012-02-17 14:42:44
这可能会回答你的问题:Leveraging JQuery find or inArray method to find an item in an array
阅读第一个答案的注释。
发布于 2012-02-17 14:45:24
inArray方法只匹配确切的对象,所以如果对象是相同的,那么你可以像这样使用它;
if(jQuery.inArray({id: item,name: somename})!=-1)
array.push({id: item,name: somename});但是如果你只想检查id,你可以使用grep来选择id为的对象,如下所示:
if(jQuery.grep( array, function(a){return a.id==item}).length ==1)
array.push({id: item,name: somename});https://stackoverflow.com/questions/9323867
复制相似问题