如何使用特定值删除数组元素

时间:2016-07-29 11:46:06

标签: javascript javascript-objects

假设我有一个如下结构的数组:

{ q1: true, q2: false, q3: false, q4: true, q5:true }

有没有办法删除所有包含" false"对于AngularJS中的值?

我尝试使用splice()获取索引号,但没有运气。现在,我正在寻找一种不必使用特定索引号的方法。

任何帮助将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:1)

简单的JavaScript方法



var r = {
  q1: true,
  q2: false,
  q3: false,
  q4: true,
  q5: true
};

for (a in r) {
  if (!r[a]) {
    delete r[a]
  }
}

console.log(r);




答案 1 :(得分:0)

这不是数组,这是一个对象。您可以使用此函数删除其值为falsy的每个键:

angular.forEach(obj, function (val, key) {
  if (!val) {
    delete obj[key];
  }
});

答案 2 :(得分:0)

您提供了一个对象,而不是一个数组。 Array.prototype.splice适用于数组,而不是对象。

过滤数组中不需要的值,您应该使用Array.prototype.filter

[true, false, false, true, true].filter(function(el){ return el; });
// returns [true, true, true]