我是Java的新手。我有一个看起来像下面的对象
let final_json = {"ab": [{"cd": "ee", "col_val": {}},{"ef": "uu", "col_val": {"gg": "hh"}}]}
现在,我想用自己定义的值更新col_val
键的值。但是我还需要确保键cd
存在于给定的对象中。
这就是我要做的
if(final_json["ab"]) {
Object.entries(final_json["ab"]).forEach(([key, val]) => {
if(final_json["ab"][key].hasOwnProperty("cd")) {
// update the col_val value with {"rr": "ff"}
}
})
}
我只是无法弄清楚该怎么做。任何帮助将不胜感激。
答案 0 :(得分:2)
在这里,我使用.forEach
并仅检查cd
属性,然后更新col_val
。
let final_json = {"ab": [{"cd": "ee", "col_val": {}},{"ef": "uu", "col_val": {"gg": "hh"}}]}
final_json.ab.forEach(o => {
if (o.cd) o.col_val = {testKey: "testValue"}
})
console.log(final_json)
答案 1 :(得分:1)
使用地图,并使用hasOwnProperty()
功能检查cd。 hasOwnProperty()
告知对象中是否存在特定属性。 Refer
let final_json = {
"ab": [{
"cd": "ee",
"col_val": {}
}, {
"ef": "uu",
"col_val": {
"gg": "hh"
}
}]
};
final_json.ab.map(e => {
if (e.hasOwnProperty('cd'))
e.col_val = 'my value'
return e;
})
console.log(final_json)
答案 2 :(得分:0)
您可以找到所需的对象并更新属性(如果找到)。
let object = { ab: [{ cd: "ee", col_val: {} }, { ef: "uu", col_val: { gg: "hh" } }] },
target = (object["ab"] || []).find(o => 'cd' in o);
if (target) {
target.col_val = { rr: "ff" };
}
console.log(object);
.as-console-wrapper { max-height: 100% !important; top: 0; }