我有一个看起来像这样的对象:
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'}
]
我接近了!但我不知道如何将键和值更改为阶段和日期。有人可以帮我吗?
答案 0 :(得分:6)
您实际上可以重命名键和值参数名称:
var array = Object.entries(data).map(([phrase, date]) => ({phrase,date}));
答案 1 :(得分:1)
尝试在对象中添加标签。
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)
答案 2 :(得分:0)
您几乎可以尝试添加键以返回对象
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)
答案 3 :(得分:0)
您可以在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)
答案 4 :(得分:0)
首先通过 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);
答案 5 :(得分:0)
使用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);