我试图通过搜索任何键值在JSON数组中添加额外的键。
示例 JSON: -
[
{
"$id": "2025",
"ID": 41,
"Name": "APPLE"
},
{
"$id": "2026",
"ID": 45,
"Name": "MANGO"
},
{
"$id": "2027",
"ID": 48,
"Name": "GUAVA"
}
]
假设我必须在"Price": 50
之后添加新密钥对示例"Name": "MANGO"
或找到ID ID": 45
。所以我期待的新JSON将是: -
[
{
"$id": "2025",
"ID": 41,
"Name": "APPLE"
},
{
"$id": "2026",
"ID": 45,
"Name": "MANGO",
"Price": 50
},
{
"$id": "2027",
"ID": 48,
"Name": "GUAVA"
}
]
必须添加与匹配的搜索关键字相关的对象。
所以,我无法找到与此问题相关的任何功能。
答案 0 :(得分:1)
您可以运行循环并检查条件,然后向对象添加属性。这是一个正在运行的代码段。您可以在此处阅读有关JavaScript Objects
的更多信息
var myarray = [
{
"$id": "2025",
"ID": 41,
"Name": "APPLE"
},
{
"$id": "2026",
"ID": 45,
"Name": "MANGO"
},
{
"$id": "2027",
"ID": 48,
"Name": "GUAVA"
}
]
for(var i=0;i<myarray.length;i++){
if(myarray[i].$id === "2025" || myarray[i].Name === "APPLE"){
var data = myarray[i];
data.price = 50
}
}
console.log(myarray)
&#13;
答案 1 :(得分:1)
您可以使用array#find
来比较ID
。然后,您可以将Price
键添加到对象。
let arr = [ { "$id": "2025", "ID": 41, "Name": "APPLE" }, { "$id": "2026", "ID": 45, "Name": "MANGO" }, { "$id": "2027", "ID": 48, "Name": "GUAVA" } ],
id = 45,
obj = arr.find(({ID}) => ID === id);
if(obj);
obj.Price = 50;
console.log(arr);
答案 2 :(得分:0)
您可以尝试:
data.find(item => item.ID === 45).price = 50;
如果项目不可用,则覆盖案例:
(data.find(item => item.ID === 45) || {}).price = 50;