我有这样的数组
var curChanges = [
{id:1, isChecked:true},
{id:2, isChecked:false},
{id:3, isChecked:true}
];
现在,如果我想动态删除第二个数组,即 {id:2, isChecked:false},我该怎么做?这里 id 是唯一的。
提前致谢。
我有这样的数组
var curChanges = [
{id:1, isChecked:true},
{id:2, isChecked:false},
{id:3, isChecked:true}
];
现在,如果我想动态删除第二个数组,即 {id:2, isChecked:false},我该怎么做?这里 id 是唯一的。
提前致谢。
首先,您有语法错误。对象属性值是用 设置的:
,而不是用设置的=
:
var curChanges = [
{
id: 1,
isChecked: true
},
// etc...
];
假设数组中元素的顺序不固定,实现您想要做的最简单的方法是使用 ES5Array.prototype.filter
方法:
curChanges.filter(function (elem) {
return elem.id !== 2;
});
如果true
从过滤器函数返回,该元素将保留在数组中。如果您返回false
,它将被删除。
首先,无效的数组。应该:
不是=
所以它变成:
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);