【发布时间】:2020-03-18 17:59:49
【问题描述】:
我指的是this answer。
为什么 Code Snippet 2 的返回值与 Code Snippet 1 不同?
代码片段 1:
var firstEvents = events.reduce(function(ar, e) {
var id = e.getId();
if (e.isRecurringEvent() && e.isAllDayEvent() && !ar.some(function(f) {return f.eventId == id})) {
ar.push({eventTitle: e.getTitle(), eventId: id, startDate: e.getAllDayStartDate(), endDate: e.getAllDayEndDate()});
}
return ar;
}, []);
代码片段 2:
var firstEvents = events.reduce(function(ar, e) {
var id = e.getId();
if (e.isRecurringEvent() && e.isAllDayEvent() && !ar.some(function(f) {return f.eventId == id})) {
ar['eventTitle'] = e.getTitle();
ar['eventId'] = id;
ar['startDate'] = e.getAllDayStartDate();
ar['endDate'] = e.getAllDayEndDate();
}
return ar;
}, []);
编辑:
为什么 Code Snippet 3 的行为符合预期(每个事件系列添加一个对象),而 Code Snippet 4 却没有?
代码片段 3:
var firstEvents = events.reduce(function(ar, e) {
var id = e.getId();
if (e.isRecurringEvent() && e.isAllDayEvent() && !ar.some(function(f) {return f.eventId == id})) {
ar.push({eventTitle: e.getTitle(), eventId: id});
}
return ar;
}, []);
代码片段 4:
var firstEvents = events.reduce(function(ar, e) {
var id = e.getId();
if (e.isRecurringEvent() && e.isAllDayEvent() && !ar.some(function(f) {return f.eventId == id})) {
ar.push({eventTitle: e.getTitle()});
}
return ar;
}, []);
【问题讨论】:
标签: javascript arrays