javascript - For循环TypeScript中的所有值都替换为最后一个值
问题描述
我在 javascript 中有一个 for 循环,它连接 calendarEvents 中的数据:
drop(info) {
var that = this;
var startDate = info.date;
var frequency = this.skippingNumber;
for (var i = 0; i <= 3; i++) {
(function (start) {
that.calendarEvents = that.calendarEvents.concat({
title: 'Dropped Event',
start: start,
allDay: info.allDay
});
})(startDate);
startDate = this.addDays(startDate, frequency);
}
}
addDays(date: Date, days: number): Date {
var passedDate = date;
passedDate.setDate(passedDate.getDate() + days);
return passedDate;
}
如果我在循环中记录startDate,我会得到实际值,即Monday, Tuesday, Wednesday, Thursday。但是当我记录calendarEvents时,我得到的只是每个数据中的星期四。谁能帮我这个?提前致谢 !!
解决方案
addDays()
对receive 作为参数的所有调用,都修改并返回相同的对象 ( var startDate = info.date
)。
重写addDays()
方法以创建并返回一个新Date
对象:
addDays(date: Date, days: number): Date {
var passedDate = new Date(date.getTime());
passedDate.setDate(passedDate.getDate() + days);
return passedDate;
}
推荐阅读
- redis - 如何为 CKAN (dockerized) 配置 ckanext-archiver 插件以使其工作?
- apache-spark - hive 如何使用条件语句根据结果执行不同的查询
- c# - 如何计算水晶报表Top 6科目的平均分?
- c++ - C++ 如何用不同位置的新字符串填充静态字符串数组?
- typescript - 通用打字稿:来自 keyof T 值的通用类型
- mongodb - 如何在mongodb中使用聚合
- python - 如何访问 span 元素并更改它的值
- python - Networkx:使用位置提升节点上方的标签
- sql - 我的数据库中有一张表,其中一列中有 XML。如何获取 XML 标记的值?请建议 SQL 查询
- json - 在 SQL Server 2016 中循环遍历 JSON