关于 JavaScript 二维数组和多维数组的定义声明

Posted Jin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 JavaScript 二维数组和多维数组的定义声明相关的知识,希望对你有一定的参考价值。

之前在写扫雷的时候,因为需要用到二维数组,出现了问题,所以记录一下。

当我们在需要使用多维数组的时候,一定要使用正确的声明,不然就会出行令人头大的问题:

// 正确的声明
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 二维数组和多维数组的定义声明的主要内容,如果未能解决你的问题,请参考以下文章

PHP中多维数组的问题

关于多维数组的注意事项

7.二维数组及多维数组

从javascript中的多维数组中删除一列

关于多维数组的总结

关于数组