[英]Push array into multidimension array in Javascript
我在嘗試執行將數組推入多維數組的簡單操作時遇到了奇怪的情況。 這是一個代碼:
var Atest = Array();
var Btest = ([0, 0, 0, 0]);
Btest[0] = 1;
Btest[1] = 2
Btest[2] = 3;
Btest[3] = 4;
Atest.push([Btest]);
Btest[0] = 11;
Btest[1] = 12;
Btest[2] = 13;
Btest[3] = 14;
Atest.push([Btest]);
document.write("<br>" + Atest);
我期待得到以下 output:
1,2,3,4,11,12,13,14
但是,我得到了意想不到的 output:
11,12,13,14,11,12,13,14
我錯過了什么?
(PS:發現了大約 5 年前提出的類似未回答的問題: 將新數組推入二維數組)
當您將Btest
推入Atest
時,您會將指針推入Btest
數組。
您需要復制Btest
中包含的基礎值。
使用將創建數據副本的spread operator
的示例:
const Atest = Array(); const Btest = ([0, 0, 0, 0]); Btest[0] = 1; Btest[1] = 2 Btest[2] = 3; Btest[3] = 4; Atest.push([...Btest]); Btest[0] = 11; Btest[1] = 12; Btest[2] = 13; Btest[3] = 14; Atest.push([...Btest]); document.write(`<br>${Atest}`);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.