正确的循环语法,如果value = x,则删除对象属性

时间:2015-10-15 14:17:46

标签: javascript loops object

说我有一个像这样的对象:

obj = {
    property1: "Prop 1 value",
    property2: "-",
    property3: "Prop 3 value"
    property4: "-"
}

如果属性值等于" - "在某个属性上,我想将其从对象中删除。

我已经研究过循环,但我甚至不知道这是否是使用对象的正确范例。

2 个答案:

答案 0 :(得分:6)

该算法非常简单。迭代对象中的所有属性,检查属性值是否等于"-"并从对象中删除它。

for (var key in obj) {
    if (obj[key] === '-')
        delete obj[key];
}

答案 1 :(得分:2)

简单的循环与比较。

var obj = {
    property1: "Prop 1 value",
    property2: "-",
    property3: "Prop 3 value",
    property4: "-"
}

for (var prop in obj) {
    if (obj.hasOwnProperty(prop)) {
        if (obj[prop]==="-") {
            delete obj[prop];
        }
    }
}

其他选项是带有for循环的Object.keys

var obj = {
        property1: "Prop 1 value",
        property2: "-",
        property3: "Prop 3 value",
        property4: "-"
    }
Object.keys(obj).forEach(function(key) {
    if(obj[key]==="-") {
        delete obj[key];
    }
});