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

Proper loop syntax to remove object properties if value = x

本文关键字:如果 value 属性 对象 循环 语法 删除      更新时间:2023-09-26

假设我有一个这样的对象:

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

如果一个属性的值等于"-",我想把它从对象中删除。

我研究过for循环,但我甚至不知道这是否是处理对象的正确范例。

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

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

带有比较的简单for in循环。

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

其他选项为Object。带有for循环的键

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