有一个对象数组
const data = [{
"name": "08/20/2018",
"id": "name_1"
}, {
"name": "12/23/2018",
"id": "name_2"
}]
我想映射这个对象数组以便得到数组
["Date 1","08/20/2018","Date 2","12/23/2018"]
我正在尝试使用 .map()
data.map((d, i) =>
`${'Date ' + i}`
d.name
)];
但不能用第一个 (d) 参数映射名称。
最佳答案
由于输入项和输出数组项不是一对一的,因此您将无法使用 .map
。改用 reduce
:
const data = [{
"name": "08/20/2018",
"id": "name_1"
}, {
"name": "12/23/2018",
"id": "name_2"
}];
const output = data.reduce((a, { name }, i) => {
a.push('Date ' + (i + 1), name);
return a;
}, []);
console.log(output);
或.flatMap
:
const data = [{
"name": "08/20/2018",
"id": "name_1"
}, {
"name": "12/23/2018",
"id": "name_2"
}];
const output = data.flatMap(({ name }, i) => (['Date ' + (i + 1), name]));
console.log(output);
(请注意,由于数组是零索引的,如果您想要输出数组中的第一项,则必须使用 i + 1
,而不是 i
从 1 而不是 0 开始)
关于javascript - ES6 将对象数组映射到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59006763/