为什么函数返回多维数组但结果是数字?

时间:2016-08-08 05:20:33

标签: javascript

当函数返回多维数组(数组全部是num)时,结果是数字?

function show(){
    return [1,2][1,2];
}
function show1(){
    return [0,1,2][1,2];
}
function show2(){
    return [0,1,2,3,4,5,6,7,8,9,10,11,12][[0,1,2,[5,9,8,6][2,1,5,0],4,6][1,2,3]];
}
console.log(show());//undefined
console.log(show1());//2
console.log(show2());//5

2 个答案:

答案 0 :(得分:8)

这是因为您使用括号表示法从数组中获取元素。

作为示例,show1函数返回2,因为:

[0,1,2]定义一个数组, 并且[1,2]是用于从数组中获取元素的括号表示法。代码段等于:[0,1,2][2],因为逗号运算符返回最后一个操作数,即2。

您需要使用[]包含代码段,以获得包含2个元素的数组:

[[0,1,2], [1,2]]

答案 1 :(得分:2)

问题在于你的语法。在javascript(和其他语言)中,2维数组是一个数组数组,因此当你想在javascript中声明它时,你应该这样做:

var twoDimArray = [[1, 2], [3, 6]];