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

How to remove an array element using a specific value

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

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

有没有办法删除所有具有 AngularJS 值的 "false" 的元素?

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

如有任何帮助,我们将不胜感激。谢谢。

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

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

简单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);

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

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

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