从 JS 对象数组中删除元素
2011-11-17
160
因此,我有类似这样的定义
var myList = [];
//I populate it like this
myList.push({ prop1: value1,
prop2: value2,
prop3: value3
});
是否可以根据 prop1 值从列表中删除项目,而无需搜索数组?
3个回答
不可以。您必须以某种方式循环遍历数组,检查其中每个对象的属性,并在遇到它们时执行删除操作。
JAAulde
2011-11-17
如下所示:
myList = myList.filter( function ( obj ) {
return obj.prop1 !== value;
});
其中
value
是您要测试的值。
现场演示: http://jsfiddle.net/LBYfa/
因此,如果
'prop1'
属性的值等于您要测试的值,则
obj.prop1 !== value
的计算结果将为
false
,并且该元素将被过滤掉。
Šime Vidas
2011-11-17
这有帮助吗:
Array.prototype.remove = function(s) { var i = this.indexOf(s); if(i != -1) this.splice(i, 1); }
Sudhir Bastakoti
2011-11-17