3 回答

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)

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)

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)
添加回答
舉報