首页 > 解决方案 > 如何在转换返回对象的一部分时在 Javascript 中执行数组映射?

问题描述

我有一个 React 组件,它正在执行 JSON 的获取操作并返回具有这种对象格式的数组:

{
device_id: "5c07f86f-3763-477f-81a7-558395a9252e"
device_type: "MX480"
domain: "JUNIPER"
domain_id: "5c07f843-7e67-4ce1-bf91-d0d7b04f35f6"
resources: null
sync_status: "idle"
sync_time: "2018-12-10T19:18:20+00:00"
}

我需要做的是将sync_time每个返回的对象中的转换为日期/时间格式,我已使用以下方法成功转换了该格式:

const finalSyncDates = names.map(item => new Date(item.sync_time))
.map(n => n.toLocaleString());  

但我仍然需要对象的其余部分。最终我想输出:

{
device_id: "5c07f86f-3763-477f-81a7-558395a9252e"
device_type: "MX480"
domain: "JUNIPER"
domain_id: "5c07f843-7e67-4ce1-bf91-d0d7b04f35f6"
resources: null
sync_status: "idle"
sync_time: "CONVERTED SYNC TIME HERE"
}

只是不确定语法。任何帮助,将不胜感激。

标签: javascriptarrays

解决方案


你可以试试这个伙伴

map()函数中,您可以更改对象(当前元素)的所需属性,而不是简单地返回元素。

let obj = [{
          device_id: "5c07f86f-3763-477f-81a7-558395a9252e",
          device_type: "MX480",
          domain: "JUNIPER",
          domain_id: "5c07f843-7e67-4ce1-bf91-d0d7b04f35f6",
          resources: null,
          sync_status: "idle",
          sync_time: "2018-12-10T19:18:20+00:00",
         },
         {
          device_id: "5c07f86f-3763-477f-81a7-558395a9252e",
          device_type: "MX480",
          domain: "JUNIPER",
          domain_id: "5c07f843-7e67-4ce1-bf91-d0d7b04f35f6",
          resources: null,
          sync_status: "idle",
          sync_time: "2018-12-10T19:18:20+00:00",
         }]


let op = obj.map(e=>{
  e.sync_time = new Date(e.sync_time).toLocaleString();
  return e;
})


console.log(obj);


推荐阅读