【发布时间】:2016-07-12 02:14:41
【问题描述】:
如果数组中存在目标对象属性,我正在寻找一种从数组中删除所有元素的方法。
var msg={name:'tar', type:'SR'}; //want to delete all object with type=SR
var items= [{name:'oh', type:'SR'},{name:'em', type:'PR'},
{name:'ge', type:'MR'},{name:'ohoo', type:'SR'}];
items.splice( items.indexOf(msg.type), 1 );
这样,只有一个对象被删除。有人可以建议一种更好的方法,即不使用循环我可以从数组中删除所有目标对象
【问题讨论】:
-
如果至少一个对象包含具有特定值的特定属性,您是要从数组中删除所有元素,还是要仅删除具有特定值的特定属性的对象?
-
您的代码正在删除除最后一个以外的所有对象,
items.indexOf(msg.type)return-1asindexOf查找值"SR" -
我正在尝试删除所有具有 type:'SR' 的对象。
-
那你应该澄清你问题的第一句话。
-
对不起,我已经在代码注释中提到了这一点。
标签: javascript jquery arrays performance javascript-objects