首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何删除基于id的内部数组完整?

如何删除基于id的内部数组完整?
EN

Stack Overflow用户
提问于 2013-03-28 19:12:19
回答 2查看 85关注 0票数 0

我有这样的数组

代码语言:javascript
运行
复制
var curChanges = [
                   {id:1, isChecked:true},
                   {id:2, isChecked:false},
                   {id:3, isChecked:true}
                 ];

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

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-28 19:16:45

首先,你有一个语法错误。使用:而不是=设置对象属性值

代码语言:javascript
运行
复制
var curChanges = [
    {
        id: 1,
        isChecked: true
    },
    // etc...
];

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

代码语言:javascript
运行
复制
curChanges.filter(function (elem) {
    return elem.id !== 2;
});

如果从filter函数返回true,元素将留在数组中。如果返回false,它将被移除。

票数 2
EN

Stack Overflow用户

发布于 2013-03-28 19:16:33

首先,数组无效。应为:而不是=

所以它变成了:

代码语言:javascript
运行
复制
var curChanges = [ {id:1, isChecked:true}, {id:2, isChecked:false}, {id:3, isChecked:true}];

根据id使用筛选器删除:

代码语言:javascript
运行
复制
curChanges.filter(function(i) { return i.id!=2;})

或者直接删除第二个元素:

代码语言:javascript
运行
复制
curChanges.splice(1,1);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15680296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档