我在 javascript 中实现了一种路由算法,但是当我在数组中分配一个负的变量时,我给出了这个错误:无效的数组长度。
var node = new Array()
node[0] = new Array(6,7)
node[1] = new Array(5,-4,8)
node[2] = new Array(-2) //Here, invalid array length
我不知道如何解决这个错误。
我在 javascript 中实现了一种路由算法,但是当我在数组中分配一个负的变量时,我给出了这个错误:无效的数组长度。
var node = new Array()
node[0] = new Array(6,7)
node[1] = new Array(5,-4,8)
node[2] = new Array(-2) //Here, invalid array length
我不知道如何解决这个错误。
如果您尝试初始化仅包含负数的数组,请使用文字语法:
var a = [-2];
构造函数的问题Array
在于,当仅使用一个参数调用它时,这个数字被用作length
新数组的,例如:
var b = new Array(5);
b.length; // 5
我建议您坚持使用文字语法以避免这些歧义。
不要那样声明数组!
var node = [6, 7];
这是因为一个整数参数设置了新数组的大小。
数组构造函数文档显示以下内容
var arr1 = new Array(arrayLength);
var arr2 = new Array(element0, element1, ..., elementN);
所以,如果你只使用一个参数,它会创建一个数组arrayLength
;否则,如果您使用多个,它将使用这些值填充数组。
但是,正如其他人指出的那样,最好使用文字符号 *
var node = [
[6, 7],
[5, -4 8],
[-2]
];
* 数组字面量表示法略快于new Array()
,但这是一种微优化,在大多数情况下并不是很重要。