我有一个类似于显示结构的数组。
var a = {};
a['key1'] = 'false';
a["key2'] = 'true';
a['key3'] = 'false';
a['key4'] = 'false';
a['key5'] = 'true';
我想删除任何值为false的条目,从而产生如图所示的数组。
{key2:true, key5:true}
我可以使用array_filter轻松地在php中执行此操作,但我无法找出js等效。我通过搜索找到的最近的建议是
for (var key in array) {
if (array[key] == false) {
array.splice(key, 1);
}
}
但我无法让它发挥作用。
答案 0 :(得分:2)
您需要遍历密钥并删除属性。
var object = { key1: false, key2: true, key3: false, key4: false, key5: true };
Object.keys(object).forEach(function (key) {
if (object[key] === false) {
delete object[key];
}
});
console.log(object);

答案 1 :(得分:0)
创建一个新数组。只添加符合您标准的那些:
var array = [true,false,true, true ]
var newArray = [];
for(var key in array){
if(array[key] != false)
newArray.push(array[key]) ;
}
答案 2 :(得分:0)
试试这个
for (var key in a) {
if (a[key] == 'false') {
delete a[key];
}
}