假设我有一个如下结构的数组:
{ q1: true, q2: false, q3: false, q4: true, q5:true }
有没有办法删除所有包含" false"对于AngularJS中的值?
我尝试使用splice()获取索引号,但没有运气。现在,我正在寻找一种不必使用特定索引号的方法。
任何帮助将不胜感激。谢谢。
答案 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]