如何根据id删除内部数组完成?

时间:2013-03-28 11:12:19

标签: javascript

我有这样的数组

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

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

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

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

假设数组中元素的顺序没有修复,那么实现你想要做的最简单的方法就是使用ES5 Array.prototype.filter方法:

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

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

答案 1 :(得分: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);