我有一个这样的对象数组:
var myArray = [
{field: 'id', operator: 'eq', value: id},
{field: 'cStatus', operator: 'eq', value: cStatus},
{field: 'money', operator: 'eq', value: money}
];
如何根据属性移除特定的属性?
例如,我如何删除字段属性为“money”的数组对象?
发布于 2013-03-08 14:19:38
一种可能性是:
myArray = myArray.filter(function( obj ) {
return obj.field !== 'money';
});
请注意,filter
会创建一个新数组。引用原始数组的任何其他变量都不会获得过滤后的数据,尽管您使用新引用更新了原始变量myArray
。请谨慎使用。
发布于 2013-03-08 14:17:54
遍历数组,然后splice
出您不需要的数组。为了更容易使用,向后迭代,这样就不必考虑数组的实时性质:
for (var i = myArray.length - 1; i >= 0; --i) {
if (myArray[i].field == "money") {
myArray.splice(i,1);
}
}
发布于 2018-04-06 17:45:40
假设您想通过第二个对象的field属性来删除它。
使用ES6就像这样简单。
myArray.splice(myArray.findIndex(item => item.field === "cStatus"), 1)
https://stackoverflow.com/questions/15287865
复制相似问题