按值而不是按引用将日期推送到数组中
push date into array by value, not by reference
如何按值将日期存储到数组中?
我怀疑日期是通过引用存储到数组中的。我遇到的问题是数组最终包含多个条目,这些条目都是相同的日期,即最后一个计算的工作日。
我正在制作一个函数,它将在数组中返回接下来的十个工作日。"while"循环计算天数并将工作日存储到将返回的数组中。
var thedays = getworkingdays();
console.log(thedays);
function getworkingdays(){
var currentdate = new Date();
i = 0;
var workingdays = new Array();
while (i < 10){
//add a day
currentdate.setDate(currentdate.getDate() + 1);
i++;
//if it's a workingday add it to the array
if (!(currentdate.getUTCDay() == 0 || currentdate.getUTCDay() == 6 )){
workingdays.push(currentdate);
}
}
return workingdays;
}
您在哪里:
workingdays.push([currentdate,datum,daysfromstart]);
您可能需要将 Date 对象的副本放入数组中,因此:
workingdays.push([new Date(+currentdate), datum, daysfromstart]);
会做这项工作。
附言
为什么+currentdate
?因为如果:
new Date(currentdate)
,当前日期被转换为字符串(通过 Date.toString),然后解析回日期。实现的日期构造函数应该正确解析其 toString 方法的默认输出,他们会这样做,但如果你的日期是 23 June 45(即 45 年),它将在大多数浏览器中解析为 23 June 1945。
边缘情况?也许吧,但为了 1 个字符,您可以放心,1 年至 99 年的日期将被正确复制。;-)
相关文章:
- 如何将日期字符串视为格式化数组[EYEAR,MONTH,DAY]
- 对象数组返回自最近日期以来的最高总体值
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 从javascript数组获取php的日期时间
- 使用数组表示法对多个字段执行jQuery日期选择器
- 从JSON数组计算javascript中的日期差异
- 使用JavaScript查找数组中最近的日期
- 从客户端的对象数组中获取最新日期的优雅方法是什么
- 我们可以将控制器中的JSON数据(MM/DD/YYYY格式)与今天的's日期,并在数组中显示筛选列表
- 在JavaScript中,按日期和之后的名称过滤数组
- 用javascript将日期时间数组拆分为子日期
- 如何按日期对Javascript对象数组排序
- lodash:根据日期聚合和减少对象数组
- 结果”;加入“;数组与php中javascript中的日期不匹配
- 从数组中排除值后,获取下一个最高日期值
- 如何使用JavaScript查找数组中的最早日期
- 用当前日期填充数组并继续向后
- Javascript从某些元素中提取日期与匹配和正则表达式返回空数组
- 无法设置数组中日期的格式
- Javascript数组日期错误