0

我有这样的数组

var curChanges = [
                   {id:1, isChecked:true},
                   {id:2, isChecked:false},
                   {id:3, isChecked:true}
                 ];

现在,如果我想动态删除第二个数组,即 {id:2, isChecked:false},我该怎么做?这里 id 是唯一的。

提前致谢。

4

2 回答 2

2

首先,您有语法错误。对象属性值是用 设置的:,而不是用设置的=

var curChanges = [
    {
        id: 1,
        isChecked: true
    },
    // etc...
];

假设数组中元素的顺序不固定,实现您想要做的最简单的方法是使用 ES5Array.prototype.filter方法:

curChanges.filter(function (elem) {
    return elem.id !== 2;
});

如果true从过滤器函数返回,该元素将保留在数组中。如果您返回false,它将被删除。

于 2013-03-28T11:16:45.320 回答
0

首先,无效的数组。应该:不是=

所以它变成:

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);
于 2013-03-28T11:16:33.207 回答