多维数组第二维度索引2元素返回undefined问题求助
问题分析与解决
嘿,我一眼就揪出问题所在啦!
你遇到的困扰完全是因为JavaScript数组的索引是从0开始计数的,咱们拆解来看:
- 执行
insTbl.push(['A', sname])后,insTbl[1]对应的就是这个新推入的子数组['A', sname] - 在这个子数组里,第一个元素
'A'的索引是0(也就是insTbl[1][0]),第二个元素sname的索引是1(也就是insTbl[1][1]) - 你用
insTbl[1][1]取到'A'、insTbl[1][2]返回undefined,本质是把索引的起始位置当成1来用了,这才导致了错误的结果
举个实际例子,如果sname的值是"Alice",你的数组结构其实是这样的:
[ [' ', ' '], ['A', 'Alice'] ]
所以正确的访问方式应该是:
- 获取
'A':insTbl[1][0] - 获取
sname的值:insTbl[1][1]
下次碰到数组索引相关的问题,先记着JS数组从0开始计数,就能避开这类小坑啦!
内容的提问来源于stack exchange,提问作者Flynn
相关产品推荐
相关产品推荐

