2 回答

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
發(fā)生這種情況的原因是數(shù)組和對(duì)象都是非基元數(shù)據(jù)類型。您可以在此處閱讀更多相關(guān)信息 - https://medium.com/javascript-in-plain-english/javascript-reviewing-primitive-and-non-primitive-data-types-5bc4ca68c3de
在這種情況下,您必須執(zhí)行以下操作:
取代
testArray.push(allorderDemo[i].orders[j]);'
跟
testArray.push({...allorderDemo[i].orders[j]});
這樣,它將創(chuàng)建一個(gè)新的JSON對(duì)象并將其推送到testArray。有關(guān)跨頁(...) 語法的更多詳細(xì)信息(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax)
此外,還應(yīng)將索引更改為,因?yàn)樗饕龔?0 開始。index > -1

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
您應(yīng)該從以下位置更改第 50 行:
else testArray.push(allorderDemo[i].orders[j]);
自:
else testArray.push({name: allorderDemo[i].orders[j].name, num:allorderDemo[i].orders[j].num});
原因是因?yàn)槟愕拇a正在推送到testArray,只有對(duì)allorderDemo中已經(jīng)存在的同一對(duì)象的引用。我編寫的這段新代碼將創(chuàng)建一個(gè)具有相同數(shù)據(jù)的新對(duì)象,并將其推送到 testArray 中。
添加回答
舉報(bào)