【问题标题】:How to loop through array of objects and replace value es6如何遍历对象数组并替换值es6
【发布时间】:2021-09-22 06:51:26
【问题描述】:

我有一个对象数组

const array =[{ 
    "id": 1,
    "time": "2021-09-22T05:36:22.484Z"
},
 {​
   ​"id": 2,
   ​"time": "2021-10-22T03:25:26.484Z"
}]

我想在转换为时区后替换所有时间值。

我可以使用

转换为时区
moment.tz("time","America/Toronto").format("YYYY-MM-DD HH:mm:ss)

但不确定如何循环替换每个对象的时间值。

所以理想情况下,我会有类似的东西:

const array =[{ 
    "id": 1,
    "time": "2021-09-22 15:00"
},
 {​
   ​"id": 2,
   ​"time": "2021-10-22T 12:00"
}]

【问题讨论】:

  • array.map(({ time, ...args }) => ({ time: moment(...), ...args }))

标签: javascript arrays object ecmascript-6


【解决方案1】:

根据您的数据,您可以简单地使用forEach 并根据您的需要操作时间属性。

const array =[
  {  "id": 1, "time": "2021-09-22T05:36:22.484Z" }, 
  {  "id": 2, "time": "2021-10-22T03:25:26.484Z" },
]

array.forEach(x => {
  x.time = moment(x.time).utcOffset(90).format("YYYY-MM-DD HH:mm:ss")
})

【讨论】:

    【解决方案2】:

    您可以使用map() 循环遍历数组并使用更新的数据创建一个新数组。

    const array = [{
      "id": 1,
      "time": "2021-09-22T05:36:22.484Z"
    }, {
      "id": 2,
      "time": "2021-10-22T03:25:26.484Z"
    }]
    
    const result = array.map(({id, time}) => {
      return {
        id,
        time: moment(time).utcOffset(90).format("YYYY-MM-DD HH:mm:ss")
      }
    });
    

    【讨论】:

      【解决方案3】:
      array=array.map(ar=>{
      ar.time=  convertedtimezone
      //convert ar.time into timezone and assign it to ar.time
      return ar
      )
      

      【讨论】:

      • 如果要修改原始对象,应使用forEach 而不是map...
      • 好的,谢谢,你能告诉我为什么
      • '因为如果更改反映在原始数组中,则无需在此处创建新数组。
      • forEach 操作当前对象。另一方面,Map 返回一个新对象,而不会改变迭代的当前对象。
      【解决方案4】:

      试试这个

      [{  "id": 1, "time": "2021-09-22 15:00" }, {"id": 2,"time": "2021-10-22T 12:00" }].map(ele=>{return {...ele,time:moment.tz(ele.time,"America/Toronto").format("YYYY-MM-DD HH:mm:ss)}})
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-03
        • 2020-10-02
        • 1970-01-01
        • 1970-01-01
        • 2022-01-15
        • 2016-12-08
        • 1970-01-01
        • 2018-05-20
        相关资源
        最近更新 更多