码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-03-28 00:01:30      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:ons   错误   OLE   演示   修改   div   改变   需要   body   

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

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

// 正确的声明
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 二维数组和多维数组的定义声明

标签:ons   错误   OLE   演示   修改   div   改变   需要   body   

原文地址:https://www.cnblogs.com/cccj/p/8660888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!