我有以下类型的对象
let obj = {
"p1" : "main",
"p2" : {
"p21" : [
{
"key1" : "val1",
"value1" : "val2",
},
{
"prop" : "test",
"value" : "dummy"
}
]
}
}
需要找到“ prop”,如果存在,则将“ value”设置为空字符串。请注意,“ p21”内可能有任何数字对象,且顺序不限。只需找到“ prop”,然后将“ value”更新为空字符串
尝试了以下
obj.p2.p21.map((item) => {
if (item.hasOwnProperty("prop")) {
item.value = "";
}
})
答案 0 :(得分:2)
您需要创建一个函数来检查键,然后替换值。
let obj = {
"p1": "main",
"p2": {
"p21": [{
"key1": "val1",
"value1": "val2",
},
{
"prop": "test",
"value": "dummy"
}
]
}
}
function replaceValue(item) {
for (var i in item) {
if (i == "prop") {
item["value"] = "";
break;//break if you only want to place the first , otherwise remove it
}
}
}
obj.p2.p21.map(item => replaceValue(item));
console.log(obj);
.as-console {
height: 100% !important;
}
答案 1 :(得分:1)
obj.p2.p21.map((elem) => {
if(Object.keys(elem)[0] === "prop")
elem.value = ""
})
尝试类似的东西吗?