Javascript:替换对象属性值

时间:2015-09-11 21:33:39

标签: javascript object

var obj = {
    prop1: "value1",
    prop2: "value2",
    prop3: "value3"
}

如何用字符串替换obj的每个prop?

期望的结果:

var obj = {
   prop1: "foo",
   prop2: "foo",
   prop3: "foo"
}

2 个答案:

答案 0 :(得分:0)

作为循环对象的最佳实践,您应该使用hasOwnProperty来确保只覆盖属性而不是函数,除非您100%确定循环永远不会出现在包含除示例中所示属性之外的任何对象上。第二项检查是确保它不会覆盖对象中存在的任何对象。

var obj = {
    prop1: "value1",
    prop2: "value2",
    prop3: "value3",
    prop4: {
        test: "test"
    }
}
for (var p in obj) {
    if (obj.hasOwnProperty(p) && (typeof obj[p]) != "object") {
        obj[p] = "foo"
    }
}

答案 1 :(得分:0)

只需遍历所有键并将属性设置为所需的值。

var obj = {
        prop1: "value1",
        prop2: "value2",
        prop3: "value3"
    };
Object.keys(obj).forEach(function (key) {
    obj[key] = 'foo';
});
document.write('<pre>' + JSON.stringify(obj, 0, 4) + '</pre>');