Pat*_*ick 6 javascript arrays undefined
我以为我知道如何声明javascript数组但是在这个脚本中我得到undefined
了数组中无限循环的元素.
我声明了三个数字数组,其中两个有多个值,另一个有一个值.
我有一个switch语句,它将三个数组之一分配给一个新的变量名 cluster_array
当我运行for
循环时cluster_array
,我得到一个无限循环和每个元素ifundefined
我错过了什么?
<script type="text/javascript">
var ga_west_cluster = new Array(10,11,12,14,74,75,76,77,78,79,80,81,82,83,85,86,87,88,89,90,91,92,295,296);
// original bad array
var ga_east_cluster = new Array(84);
// added an extra (dummy) value and it works fine
var ga_east_cluster = new Array(1,84);
var sc_cluster = new Array(93,94,95,96,97,98,99,100,101,102,103);
</script>
Run Code Online (Sandbox Code Playgroud)
这是alert
文字:
var test_message = "cluster data\n";
for(var k=0;k<cluster_array.length;k++)
test_message += "value: "+cluster_array[k]+"\n";
Run Code Online (Sandbox Code Playgroud)
Poi*_*nty 14
不要像这样初始化数组.总是这样做:
var myarray = [value, value, value, ... ];
Run Code Online (Sandbox Code Playgroud)
"Array()"构造函数设计得非常糟糕.当参数是数字时,单参数形式被解释为使用那么多"空"值"初始化"数组的请求.这是一个毫无意义的事情,所以一般来说,使用数组常量表示法会更好(如上例所示).
它似乎并没有在现代浏览器不再发生,但我发誓,有一段时间,至少某些浏览器实际上为单参数的构造函数,这是不是真的有用的,但危险的代码分配内存,可能会意外传递一个非常大的数字.