为了账号安全,请及时绑定邮箱和手机立即绑定

在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 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信