【发布时间】:2018-12-04 14:17:35
【问题描述】:
假设我有一个对象数组
const data = [{ description: "my frist event", start_time: "11:00", end_time: "12:00", event_day: "22" }, { description: "my second event", start_time: "11:00", end_time: "12:00", event_day: "22" }]
因此,每天都会有一组对象。例如,第 22 天应该在数组中有两个项目。所以结构要采用这种格式
{ 22: [ { description: 'my second event',
start_time: '11:00',
end_time: '12:00',
event_day: '22' }, { description: "my frist event", start_time: "11:00", end_time: "12:00", event_day: "22" } ] }
使用reduce方法
const arrayToObject = (array) =>array.reduce((obj, item) => {
obj[item.event_day] = [item]
return obj}, {})
arrayToObject(data)
给我以下输出:
{ 22: [ { description: 'my second event',
start_time: '11:00',
end_time: '12:00',
event_day: '22' } ] }
这只会将最后一项添加到数组中。有没有办法将所有其他对象添加到数组中?
【问题讨论】:
-
你的回调必须检查
obj[item.event_day]是否已经存在。
标签: javascript arrays node.js reactjs javascript-objects