在javascript中删除值为false的键

时间:2016-09-15 07:34:29

标签: javascript

我有一个类似于显示结构的数组。

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);
    }
}

但我无法让它发挥作用。

3 个答案:

答案 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];
        }
    }