我在 JavaScript 中創(chuàng)建了一個(gè)多維數(shù)組類(lèi)型的變量,并在發(fā)送到函數(shù)之前對(duì)其進(jìn)行了控制臺(tái),但它在控制臺(tái)上顯示了錯(cuò)誤的輸出,但是如果我刪除該函數(shù),則一切正常function ROT(a, d) { return a ^ d;}function thetha_step(A) { const C = []; const D = []; //C[x] part for (let x=0; x<5; x++) { C[x] = A[x][0]; for (let y=1; y<5; y++) { C[x] = C[x] ^ A[x][y]; } } //D[x] part D[0] = C[4] ^ ROT(C[1], 1); for (let x=1; x<5; x++) { D[x] = C[x-1] ^ ROT(C[x+1], 1); } //A[x,y] for (let x=0; x<5; x++) { for (let y=0; y<5; y++) { A[x][y] = A[x][y] ^ D[x]; } } return A;}var bin= [ [1, 0, 0, 0, 1], [0, 1, 0, 0, 0], [0, 0, 1, 1, 1], [1, 0, 1, 1, 1], [1, 0, 1, 0, 1]];console.log(bin);console.log(thetha_step(bin));# Outputs as #(5) [Array(5), Array(5), Array(5), Array(5), Array(5)]0: (5) [2, 3, 3, 3, 2]1: (5) [2, 3, 2, 2, 2]2: (5) [1, 1, 0, 0, 0]3: (5) [2, 3, 2, 2, 2]4: (5) [1, 0, 1, 0, 1](5) [Array(5), Array(5), Array(5), Array(5), Array(5)]0: (5) [2, 3, 3, 3, 2]1: (5) [2, 3, 2, 2, 2]2: (5) [1, 1, 0, 0, 0]3: (5) [2, 3, 2, 2, 2]4: (5) [1, 0, 1, 0, 1]我不明白為什么它沒(méi)有顯示正確的 bin 變量值,但是當(dāng)我刪除該函數(shù)時(shí),所有顯示都是正確的。請(qǐng)幫助我哪里出錯(cuò)了。
奇怪的行為 傳遞和多維數(shù)組作為 JavaScript 函數(shù)的輸入會(huì)改變數(shù)組的實(shí)際值嗎?
哆啦的時(shí)光機(jī)
2021-11-12 15:49:02