亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在javascript中更新對象的值

在javascript中更新對象的值

郎朗坤 2021-11-25 19:03:52
我有一個數組,我想更改costin的值,itemToReplaceFirst但不會通過添加itemsecond.cost + 1000.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) => {  let itemToReplaceSecond = item.CostInfo.map((itemsecond) => {    return { ...itemsecond, cost: itemsecond.cost + 1000 };  });  return  item});console.log(itemToReplaceFirst)
查看完整描述

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)


查看完整回答
反對 回復 2021-11-25
?
繁星coding

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)


查看完整回答
反對 回復 2021-11-25
?
慕碼人8056858

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)


查看完整回答
反對 回復 2021-11-25
  • 3 回答
  • 0 關注
  • 234 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號