簡體   English   中英

將單個對象轉換為對象數組

[英]Convert single object into array of objects

我有一個看起來像的對象:

var data = {first: '12/1/2019', second: '12/15/2019'}

我正在嘗試使用其鍵和值進入對象數組,如下所示:

var array = [ 
  {phase: 'first', date: '12/1/2019'}, 
  {phase: 'second', date: '12/15/2019'}
]

我嘗試了各種方法,但是最接近的方法是:

var array = Object.entries(data).map(([key, value]) => ({key,value}));

這給了我一系列對象,例如:

[ 
 {key: 'first', value: '12/1/2019'},
 {key: 'second', value: '12/15/2019'}
]

快到了! 但我不知道如何將鍵和值更改為階段和日期。 有人可以幫我嗎?

實際上,您可以重命名鍵和值參數名稱:

var array = Object.entries(data).map(([phrase, date]) => ({phrase,date}));

嘗試在對象中添加標簽。

 var data = { first: '12/1/2019', second: '12/15/2019' } var array = Object.entries(data).map(([key, value]) => ({ phase: key, date: value })) console.log(array) 

您幾乎可以嘗試添加鍵以返回對象

 var data = { first: '12/1/2019', second: '12/15/2019' } var array = Object.entries(data).map(([key, value]) => ({ phase: key, date: value })); console.log(array) 

您可以在Object.keys()上使用map() Object.keys()

 var data = {first: '12/1/2019', second: '12/15/2019'} let arr = Object.keys(data).map(x => ({phase:x,date:data[x]})) console.log(arr) 

您也可以使用Object.entries()map()但為銷毀的參數指定不同的名稱

 var data = {first: '12/1/2019', second: '12/15/2019'} let arr = Object.entries(data).map(([phase,date]) =>({phase,date})) console.log(arr) 

首先通過Object.entries從數據對象中提取key (階段)和value (日期),然后使用Array.reduce累加並將新對象形成數組。

 const data = {first: '12/1/2019', second: '12/15/2019'} const arr = Object.entries(data).reduce((acc, [phase, date]) => acc.concat({phase, date}), []); console.log(arr); 

嘗試使用for ... in以下解決方案迭代對象的所有非符號可枚舉屬性。

 const data = { first: '12/1/2019', second: '12/15/2019' }; const dataset = []; for (const key in data) { if (data.hasOwnProperty(key)) { const element = data[key]; dataset.push({ phase: key, date: element }); } } console.log(dataset); 

暫無
暫無

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

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