我有这样的数组
var curChanges = [
{id:1, isChecked:true},
{id:2, isChecked:false},
{id:3, isChecked:true}
];现在,如果我想动态删除第二个数组,即{id:2,isChecked:false},我该怎么做?这里的id是唯一的。
提前谢谢。
发布于 2013-03-28 19:16:45
首先,你有一个语法错误。使用:而不是=设置对象属性值
var curChanges = [
{
id: 1,
isChecked: true
},
// etc...
];假设数组中元素的顺序不是固定的,实现您想要做的事情的最简单方法是使用ES5 Array.prototype.filter方法:
curChanges.filter(function (elem) {
return elem.id !== 2;
});如果从filter函数返回true,元素将留在数组中。如果返回false,它将被移除。
发布于 2013-03-28 19:16:33
首先,数组无效。应为:而不是=
所以它变成了:
var curChanges = [ {id:1, isChecked:true}, {id:2, isChecked:false}, {id:3, isChecked:true}];根据id使用筛选器删除:
curChanges.filter(function(i) { return i.id!=2;})或者直接删除第二个元素:
curChanges.splice(1,1);https://stackoverflow.com/questions/15680296
复制相似问题