有一个对象,其中每个键都是一个对象数组。
例如,在以下示例中,data
是一个具有键的对象,其中每个键都是一个对象数组:
{
"status": 200,
"message": "Successful",
"data": {
"manual": [
{
"vendor_id": 1,
"price": 4590,
"discounts": {
"micro": 0,
"macro": 120
},
"vendor": "Vendor 1",
"customer_rating": "3.0/5",
"sla_compliance": 90,
"system_flag": "Green"
}
],
"nearest": [
{
"vendor_id": 1,
"price": 4590,
"discounts": {
"micro": 0,
"macro": 120
},
"vendor": "Vendor 1",
"customer_rating": "3.0/5",
"sla_compliance": 90,
"system_flag": "Green"
}
],
"auto": [
{
"vendor_id": 1,
"price": 4590,
"discounts": {
"micro": 0,
"macro": 120
},
"vendor": "Vendor 1",
"customer_rating": "3.0/5",
"sla_compliance": 90,
"system_flag": "Green"
}
],
"ticket_id": 72
}
}
我需要从数组内的每个对象添加/删除键。例如,我需要为密钥name
中的每个对象添加manual
密钥。像nearest
,auto
等其他对象数组一样。这样做的方法是什么?
我尝试修改一个键,它会更改整个对象。我怎么能在这里避免引用呢?
答案 0 :(得分:0)
你的意思是这样吗?
假设您的数据结构名为cars
:
var cars = {
"status": 200,
"message": "Successful",
"data": {
"manual": [
{
...
然后,您可以将属性name
添加到属性manual
下的项目,如
cars.data.manual = cars.data.manual.map(i => Object.assign({name: 'My ' + i.vendor}, i));
同样地,对于不同属性下的其他项目。
你可以
console.log(cars);
然后验证结果。