如何使用特定值删除数组元素
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]
假设我有一个结构如下的数组:
{ 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]