gpt4 book ai didi

JavaScript - 将数组索引分配给返回值不起作用

转载 作者:行者123 更新时间:2023-12-03 05:20:37 25 4
gpt4 key购买 nike

我试图将返回值分配给数组中的一个元素,由于某种原因,它将数组中的两个元素覆盖为相同的值,而不是仅覆盖第二个元素。

我为此使用的日期选择器可以在这里找到,以供引用。

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:[Mon Jan 02 2017 00:00:00 GMT-0600(中部标准时间),Sun Jan 08 2017 23:59:59 GMT-0600(中部标准时间)]

输出 2:[2017 年 1 月 9 日星期一 00:00:00 GMT-0600(中部标准时间),2017 年 1 月 9 日星期一 00:00:00 GMT-0600(中部标准时间)]

如您所见,当我尝试将第二个元素 t[1] 分配为等于 AddDays(t[0], $(this).val() 的返回值时) 两个日期都设置为相同的确切日期。但是,第二个元素应该等于第一个元素加上指定的天数。

我还验证了元素 $(this).val() 不为零。就我而言,当我在分配 t[1] 之前运行 console.log($(this).val()); 时,实际上返回 7。

我在这里做错了什么?

最佳答案

您的函数会修改调用 setTime 时传入的日期。您可以删除对 setTime 的调用来解决您的问题。

function addDays(date, days) {
return new Date(date.getTime() + (days * 86400000));
}

或者创建一个全新的日期对象并在副本上调用 setDatesetTime

function addDays(date, days) {
var result = new Date(date);
result.setDate(result.getDate() + days);
return result;
}

关于JavaScript - 将数组索引分配给返回值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41402183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com