为了账号安全,请及时绑定邮箱和手机立即绑定

关于二维数组arr[i][0]的问题

http://img1.sycdn.imooc.com//57a95111000136c405940410.jpg

alert(arr[1][1]);会弹出提示框

http://img1.sycdn.imooc.com//57a9514f0001fc0604460171.jpg

但是if中的判断条件在运行时为什么会读取不到

正在回答

5 回答

刚没看理解你的问题,现在再来补充一下~

你的问题是:1)if中的判断条件在运行时为什么会读取不到2)为什么(arr[1][1])可以识别,(arr[i][0])会报错

第一个问题,运行时其实已经读取到if判断条件了,所以才会出现Cannot read property '0' of underfined报错

第二个问题,当你给数组赋值之后,直接alert(arr[1][1]); 默认将字符串转换为数组形式,所以[1][1]索引的是第二个数组'##'的第二个值'#'。你把for循环位置调整之后,在那一行打一个断点,在Sources中F10分步运行就可以看到报错是在i的值为6的时候出现的,原因在于var arr = ['*','##',"***","&&","****","##*"];只定义了数组的前六个值,arr[7] = '**';则定义了第八个值;所以arr[6]即数组的第七位是没有赋值的,该位置为空,也就不存在arr[6][0]的值,因此控制台报错。

2 回复 有任何疑惑可以回复我~
#1

湛瞳 提问者

非常感谢!
2016-08-10 回复 有任何疑惑可以回复我~

你定义数组的方式也有问题吧,好像并没有定义二维数组。

var arr = ['*','##',"***","&&","****","##*"];

这样定义的只是一维数组,为什么后面却又直接使用二维数组的方式进行索引呢?

0 回复 有任何疑惑可以回复我~
#1

爱吃芒果

这里是误解了,又更新了答案在下面
2016-08-09 回复 有任何疑惑可以回复我~

亲们,我知道for循环的格式有问题,不过这不是我的重点啊,即使改正确了还是会有如图所示的错误,我想知道为什么(arr[1][1])可以识别,(arr[i][0])0会报错

0 回复 有任何疑惑可以回复我~

for 循环没有把alert包含进去

0 回复 有任何疑惑可以回复我~

代码中的for循环格式好像错了

0 回复 有任何疑惑可以回复我~
#1

湛瞳 提问者

哪里?
2016-08-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

关于二维数组arr[i][0]的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信