在javascript中更新对象的值

在javascript中更新对象的值,javascript,Javascript,我有一个数组,我想更改itemToReplaceFirst中cost的值,但不能通过添加itemsecond.cost+1000来更新它 让MyArray=[ { “Id”:“1”, “成本信息”:[ {“成本”:1000} ] }, { “Id”:“2”, “成本信息”:[ {“成本”:4000} ] }, { “Id”:“3”, “成本信息”:[ {“成本”:1000} ] }, { “Id”:“4”, “成本信息”:[ {“成本”:2000} ] } ] 让itemToReplaceFi

我有一个数组,我想更改
itemToReplaceFirst
cost
的值,但不能通过添加
itemsecond.cost+1000
来更新它

让MyArray=[
{
“Id”:“1”,
“成本信息”:[
{“成本”:1000}
]
},
{
“Id”:“2”,
“成本信息”:[
{“成本”:4000}
]
},
{
“Id”:“3”,
“成本信息”:[
{“成本”:1000}
]
},
{
“Id”:“4”,
“成本信息”:[
{“成本”:2000}
]
}
]
让itemToReplaceFirst=MyArray.map((item)=>{
让itemToReplaceSecond=item.CostInfo.map((itemsecond)=>{
返回{…itemsecond,cost:itemsecond.cost+1000};
});
退货项目
});

console.log(itemToReplaceFirst)
您需要返回
itemToReplaceSecond
,而不是
item
(在
itemToReplaceFirst
声明的末尾)

让MyArray=[{
“Id”:“1”,
“成本信息”:[{
“成本”:1000
}]
},
{
“Id”:“2”,
“成本信息”:[{
“费用”:4000
}]
},
{
“Id”:“3”,
“成本信息”:[{
“成本”:1000
}]
},
{
“Id”:“4”,
“成本信息”:[{
“费用”:2000年
}]
}
]
让itemToReplaceFirst=MyArray.map((item)=>{
返回{
项目
CostInfo:item.CostInfo.map((innerItem)=>{
返回{
…内部项目,
成本:innerItem.cost+1000
}
})
}
});

console.log(itemToReplaceFirst)
不确定问题的边界是什么,但您可以尝试以下方法:

让MyArray=[{
“Id”:“1”,
“成本信息”:[{
“成本”:1000
}]
},
{
“Id”:“2”,
“成本信息”:[{
“费用”:4000
}]
},
{
“Id”:“3”,
“成本信息”:[{
“成本”:1000
}]
},
{
“Id”:“4”,
“成本信息”:[{
“费用”:2000年
}]
}
]
const res=MyArray.map(obj=>{
const costInfo=obj.costInfo.map(obj=>{
返回{cost:obj.cost+1000};
})
返回{…obj,CostInfo:CostInfo}
});

console.log(res)
从问题的结构来看,您似乎希望在不修改原始输入数组的情况下更新新数组中的成本。这应该可以做到这一点

让MyArray=[
{
“Id”:“1”,
“成本信息”:[
{“成本”:1000}
]
},
{
“Id”:“2”,
“成本信息”:[
{“成本”:4000}
]
},
{
“Id”:“3”,
“成本信息”:[
{“成本”:1000}
]
},
{
“Id”:“4”,
“成本信息”:[
{“成本”:2000}
]
}
]
const UpdatedArray=MyArray.map(项=>{
让updatedCostInfo=item.CostInfo.map(CostInfo=>{
返回{…costinfo,成本:costinfo.cost+1000}
})
返回{…项,成本信息:updatedCostInfo}
});
log(“原始数组:”,MyArray)

log(“更新的数组:,更新的数组)
您对
itemToReplaceSecond
什么都不做。这是故意的吗?不是真的,这不是故意的。这里需要仔细检查输出,它与输入数组不匹配