3 回答
![?](http://img1.sycdn.imooc.com/545862e700016daa02200220-100-100.jpg)
TA贡献1712条经验 获得超3个赞
不确定你的问题的界限是什么,但你可以试试这个:
let MyArray = [{
"Id": "1",
"CostInfo": [{
"cost": 1000
}]
},
{
"Id": "2",
"CostInfo": [{
"cost": 4000
}]
},
{
"Id": "3",
"CostInfo": [{
"cost": 1000
}]
},
{
"Id": "4",
"CostInfo": [{
"cost": 2000
}]
}
]
const res = MyArray.map(obj => {
const costInfo = obj.CostInfo.map(obj => {
return { cost: obj.cost + 1000 };
})
return { ...obj, CostInfo: costInfo }
});
console.log(res)
![?](http://img1.sycdn.imooc.com/5c4aa098000126bb09600960-100-100.jpg)
TA贡献1797条经验 获得超4个赞
您需要返回itemToReplaceSecond,而不是item(在itemToReplaceFirst声明结束时)。
let MyArray = [{
"Id": "1",
"CostInfo": [{
"cost": 1000
}]
},
{
"Id": "2",
"CostInfo": [{
"cost": 4000
}]
},
{
"Id": "3",
"CostInfo": [{
"cost": 1000
}]
},
{
"Id": "4",
"CostInfo": [{
"cost": 2000
}]
}
]
let itemToReplaceFirst = MyArray.map((item) => {
return {
...item,
CostInfo: item.CostInfo.map((innerItem) => {
return {
...innerItem,
cost: innerItem.cost + 1000
}
})
}
});
console.log(itemToReplaceFirst)
![?](http://img1.sycdn.imooc.com/5458692c00014e9b02200220-100-100.jpg)
TA贡献1803条经验 获得超6个赞
从您的问题的结构方式来看,您似乎想在不修改原始输入数组的情况下更新新数组中的成本。这应该可以实现。
let MyArray = [
{
"Id": "1",
"CostInfo": [
{"cost": 1000}
]
},
{
"Id": "2",
"CostInfo": [
{"cost": 4000}
]
},
{
"Id": "3",
"CostInfo": [
{"cost": 1000}
]
},
{
"Id": "4",
"CostInfo": [
{"cost": 2000}
]
}
]
const UpdatedArray = MyArray.map(item => {
let updatedCostInfo = item.CostInfo.map(costinfo => {
return { ...costinfo, cost: costinfo.cost + 1000}
})
return { ...item, CostInfo: updatedCostInfo }
});
console.log("Original Array: ", MyArray)
console.log("Updated Array: ", UpdatedArray)
添加回答
举报