从JS对象数组中删除元素

时间:2011-11-17 01:25:59

标签: javascript

所以我有这样的定义

var myList = [];  

//I populate it like this
myList.push({ prop1: value1, 
                      prop2: value2,
                      prop3: value3
});

是否可以根据没有搜索数组的prop1值从列表中删除项目?

4 个答案:

答案 0 :(得分:1)

没有。您必须以某种方式遍历数组,检查其中每个对象的属性,并在您点击它们时执行删除。

答案 1 :(得分:1)

你走了:

myList = myList.filter( function ( obj ) {
    return obj.prop1 !== value;
});

其中value是您要测试的值。

现场演示: http://jsfiddle.net/LBYfa/

因此,如果'prop1'属性的值等于您要测试的值,obj.prop1 !== value将评估为false,并且该元素将被过滤掉。< / p>

答案 2 :(得分:0)

这有用吗:

Array.prototype.remove = function(s) {
  var i = this.indexOf(s);
  if(i != -1) this.splice(i, 1);
}

答案 3 :(得分:0)

是否需要myList具有整数类型的索引?你可能改用key =&gt;值对 - 即一个值为prop1的关联数组作为键? prop1有多大可能是唯一的?如果不太可能,请考虑实施多图。

相关问题