我正在撰寫一個代碼,它在 while 陳述句中增加物件的日期并在每次迭代時放入一個陣列,我不明白為什么但是當我在控制臺上列印陣列時,增加的日期總是在最后一天增加,代碼在這里:
while (Difference_In_Days > 1) {
var assTemp = new assenza()
Difference_In_Days = date2.getDate() - date1.getDate();
assTemp.data_ass = date1
assTemp.id_ass = 0
assTemp.motivo = "" motivo
assTemp.dipendente = this.dipendente
this.assArr.push(assTemp)
var assTemp = new assenza()
date1.setDate(date1.getDate() 1)
}
和 console.log(JSON.stringify(this.assArr)) 的結果:
[ { "id_ass":0, "data_ass":"2021-10-15T00:00:00.000Z", "motivo":"salute", "dipendente":{} },
{ "id_ass":0, "data_ass":"2021-10-15T00:00:00.000Z", "motivo":"salute", "dipendente":{} },
{ "id_ass":0, "data_ass":"2021-10-15T00:00:00.000Z", "motivo":"salute", "dipendente":{} } ]
如您所見,data_ass(日期)始終相同,為什么?如果我將 date1 的 console.log 放入其中,它會通過迭代每天向我顯示正確的增量。感謝您的幫助
uj5u.com熱心網友回復:
您只需將 date1 復制到 assTemp.data_ass,而不是通過更改行來分配參考
assTemp.data_ass = date1
到
assTemp.data_ass = new Date(date1);
否則,每個 assTemp 實體都將保存 data_ass 的相同值,即最后一個值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/339659.html
標籤:javascript 有角的 打字稿
