如何删除具有属性的数组对象

时间:2013-12-23 07:02:04

标签: javascript underscore.js

从具有特定属性= x的数组中删除所有对象的最简单方法是什么?

2 个答案:

答案 0 :(得分:2)

使用_.filter

var result = _.filter(arr, function(item) {
  return !("prop" in item);
});

如果要将其限制为每个项目的直接属性,请使用

var result = _.filter(arr, function(item) {
  return !item.hasOwnProperty("prop");
});

答案 1 :(得分:0)

似乎最简单的方法是使用filter方法:

var newArray = _.filter(oldArray, function(x) { return !('prop' in x); });
// or
var newArray = _.filter(oldArray, function(x) { return !_.has(x, 'prop'); });

或者,reject方法也可以正常工作:

var newArray = _.reject(oldArray, function(x) { return 'prop' in x; });
// or
var newArray = _.reject(oldArray, function(x) { return _.has(x, 'prop'); });

更新鉴于您的更新问题,代码应如下所示:

var newArray = _.filter(oldArray, function(x) { return x.property !== 'value'; });

或者像这样

var newArray = _.reject(oldArray, function(x) { return x.property === 'value'; });