我想分配一个返回值给一个数组中的元素,出于某种原因,它将数组中的两个元素覆盖为相同的值而不是第二个元素。JavaScript - 分配数组索引返回值不工作
我正在使用的datepicker可以在这里找到,仅供参考。
http://www.eyecon.ro/datepicker/
function AddDays(date, days)
{
var newDate = new Date(date.setTime(date.getTime() + days * 86400000));
return newDate;
}
$('#nights').on('change', function(){
var $dp = $('#date');
var t = $dp.DatePickerGetDate();
console.log(t); // Output 1
t[1] = AddDays(t[0], $(this).val());
console.log(t); // Output 2
});
输出1:星期一2017年1月2日00:00:00 GMT-0600(中部标准时间),太阳2017年1月8日23:59:59 GMT-0600(中部标准时间)]
输出2:星期一2017年1月9日00:00:00 GMT-0600(中部标准时间),星期一2017年1月9日00:00:00 GMT-0600(中部标准时间)
正如您所看到的,当我尝试将第二个元素t[1]
指定为等于的返回值时两个日期都设置相同的确切日期。但是,第二个元素应该等于第一个元素加上指定的天数。
我还验证了元素$(this).val()
不为零。在我的情况下,实际上返回7,当我在t[1]
的任务之前运行console.log($(this).val());
。
我在这里做错了什么?
你能否创建一个工作示例? – Dekel
在将它传递给'Date'构造函数之前,你正在改变原始日期,所以它们自然会在同一时间结束。删除'd.setTime()'。 – 2016-12-30 20:26:45