簡體   English   中英

如何使用 javascript 更新數組中 object 的值

[英]How to update value of object in array using javascript

我有這樣的數組

myArray=[{
  id:1,
  date:2019-03-17,
  title:'name1'
},
{
  id:2,
  date:2019-04-17,
  title:'name2'
},
{
  id:3,
  date:2019-05-17,
  title:'name3'
},
]

如何更新它並獲得如下所示的新數組

newArray=[
  {
    id:1,
    date:moment(2019-03-17).format('L'),
    title:'name1'
  },
  {
    id:2,
    date:moment(2019-04-17).format('L'),
    title:'name2'
  },
  {
    id:3,
    date:moment(2019-05-17).format('L'),
    title:'name3'
  },

]

以上只是我的例子。 真正的問題是我從 Postgres 獲得了日期,而這些日期沒有時區。 所以我需要使用時刻來格式化我從數據庫中獲得的所有日期謝謝

如果你使用nodepg ,那么你可以這樣做:

const pg = require("pg");


const PG_TIMESTAMP_OID = 1114;
const PG_TIMESTAMPTZ_OID = 1184;
const PG_DATESTAMP = 1082;

const parseDate = (date) => (date === null ? null : moment(date).format());

pg.types.setTypeParser(PG_TIMESTAMP_OID, parseDate);
pg.types.setTypeParser(PG_TIMESTAMPTZ_OID, parseDate);
pg.types.setTypeParser(PG_DATESTAMP, parseDate);

這樣你在查詢 postgres 時總是會得到時刻格式。

如果您不使用它,或者不想使用它,那么您可以只使用 map 您的陣列:

const newArray = myArray.map(item => ({
  ...item,
  date: moment(item.date).format("L")
}));

您可以使用 for 循環並按如下方式編輯您的 object,

for(var i = 0; i < myArray.length; i++) {
    myArray[i].date = "moment(" + myArray[i].date + ").format('L')";
}

新數組 = MyArray.map(objectInArray => { objectInArray.date = moment(objectInArray.date).format('L') return objectInArray })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM