1. 程式人生 > >關於 JavaScript 二維數組和多維數組的定義聲明

關於 JavaScript 二維數組和多維數組的定義聲明

一起 關於 多維 可能 mmm 需要 down 定義 發生

之前在寫掃雷的時候,因為需要用到二維數組,出現了問題,所以記錄一下。

當我們在需要使用多維數組的時候,一定要使用正確的聲明,不然就會出行令人頭大的問題:

// 正確的聲明
var arr = []
arr[0] = []
arr[1] = []
arr[2] = []

// 或者
arr[0] = [0, 0, 0]
arr[1] = [0, 0, 0]
arr[2] = [0, 0, 0]

演示一下錯誤的聲明:

// 錯誤的聲明
var arr = []
var arr2 = [0, 0, 0]
arr[0] = arr2
arr[1] = arr2
arr[2] = arr2

// 這個時候我們改變 arr[0][0]
arr[0][0] =
1 // 然後我們 log 數組試一下 console.log(arr) /* [1, 0, 0] [1, 0, 0] [1, 0, 0] 發現了沒,arr[0][0]、arr[1][0]、arr[2][0] 都一起發生了變化 只是修改了 arr[0][0],但是其他的數組居然也發生了變化 */

這樣的聲明會發生錯誤,這裏是挺鬼畜的,因為按照我個人的理解,arr[i] 應該是復制了 arr2 的內容,但是從這個結果來看,很顯然不是這個樣子的。

所以在使用多維數組的時候一定不要犯這樣的低級錯誤(可能只有我這麽水的才會犯吧,emmm)。

關於 JavaScript 二維數組和多維數組的定義聲明