我正在为对象列表中的每个对象添加一个值。但我不知道为什么它为每个循环中的每个对象添加日期。
这是我的代码:
var emptyday: {
"date":""
}
//make list of days in month
var monthlist = [];
for (i=0;i<=days_in_months;i++) {
monthlist[i] = emptyday;
}
因此,在我的示例中,可以说 days_in_months 是 31(天)
现在是添加
for (x=1;x<=days_in_months;x++) {
console.log(x);
if (x<10) {
daynumber = "0" + x;
} else {
daynumber = x;
}
datestring = year + "-"+ (month+1) + "-" + daynumber;
dayofmonth = monthlist[x];
dayofmonth["date"] = datestring;
//monthlist[x].date = datestring;
}
当我尝试添加 (dayofmonth["date"] = datestring or monthlist[x].date) 时,它会添加到每个循环中所有对象的所有日期值。
第一个循环的 console.log 看起来像这样:
[对象{日期=“2013-1-01”},对象{日期=“2013-1-01”},对象{日期=“2013-1-01”},对象{日期=“2013-1-01 "}、对象 { 日期 = "2013-1-01"}、对象 { 日期 = "2013-1-01"} 等
在第一个循环中进行了 31 次
在最后一个循环中,它将是 2013-1-31
我不明白为什么它会为所有对象添加该值。我已经尝试过 console.log 和到处调试以读出值并试图了解出了什么问题,但仍然没有找到解决方案