在Javascript对象数组中查找元素

时间:2012-09-06 15:08:45

标签: javascript jquery

我有一个像

这样的javascript对象数组
var objArr = [Object{key="1", value="a"}, Object{key="2", value="b"}, ...]

我们是否有任何Jquery方法找到该对象并将其删除。我知道使用$.each

$.each(objArr, function(index, obj) {

})

但我们是否有任何简单有效的解决方案?

2 个答案:

答案 0 :(得分:3)

没有jQuery,只需使用the filter function的javascript:

var filtered = objArr.filter(function(o){return o.key!='badkey';});

(请注意,MDN页面提供了与旧版浏览器兼容的提示)

答案 1 :(得分:0)

要查找元素,可以使用.grep()函数 示例:过滤数字数组以包含不大于零的数字。

$.grep( [0,1,2], function(n,i){
return n > 0; 
},true);

结果:  [0]

或者,如果您只需要找到该元素的位置,则可以使用.inArray()函数 示例:查找与以下内容匹配的元素的位置:“1”

var arr = [ 4, 2, 3, 1, "hello" ];
var exist = $.inArray(1, arr);

结果:

exists = 3

对于删除,可能有一个帖子可以解决您的问题 How to remove specifc value from array using jQuery