首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >根据对象属性移除数组元素

根据对象属性移除数组元素
EN

Stack Overflow用户
提问于 2013-03-08 14:14:25
回答 10查看 309.2K关注 0票数 356

我有一个这样的对象数组:

代码语言:javascript
复制
var myArray = [
    {field: 'id', operator: 'eq', value: id}, 
    {field: 'cStatus', operator: 'eq', value: cStatus}, 
    {field: 'money', operator: 'eq', value: money}
];

如何根据属性移除特定的属性?

例如,我如何删除字段属性为“money”的数组对象?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-03-08 14:19:38

一种可能性是:

代码语言:javascript
复制
myArray = myArray.filter(function( obj ) {
    return obj.field !== 'money';
});

请注意,filter会创建一个新数组。引用原始数组的任何其他变量都不会获得过滤后的数据,尽管您使用新引用更新了原始变量myArray。请谨慎使用。

票数 503
EN

Stack Overflow用户

发布于 2013-03-08 14:17:54

遍历数组,然后splice出您不需要的数组。为了更容易使用,向后迭代,这样就不必考虑数组的实时性质:

代码语言:javascript
复制
for (var i = myArray.length - 1; i >= 0; --i) {
    if (myArray[i].field == "money") {
        myArray.splice(i,1);
    }
}
票数 99
EN

Stack Overflow用户

发布于 2018-04-06 17:45:40

假设您想通过第二个对象的field属性来删除它。

使用ES6就像这样简单。

代码语言:javascript
复制
myArray.splice(myArray.findIndex(item => item.field === "cStatus"), 1)
票数 68
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15287865

复制
相关文章

相似问题

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