猿问

在javascript中更新对象的值

我有一个数组,我想更改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)


郎朗坤
浏览 208回答 3
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)

繁星coding

您需要返回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)

慕码人8056858

从您的问题的结构方式来看,您似乎想在不修改原始输入数组的情况下更新新数组中的成本。这应该可以实现。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)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答