你对js的数组理解有错误
var   temparr=new   Array(a,b)
相当于你定义了一个 temparr数组,里面有两个元素 a和b
不是二位数组。Array 对象
提供对创建任何数据类型的数组的支持。arrayObj = new Array()
arrayObj = new Array([size])
arrayObj = new Array([element0[, element1[, ...[, elementN]]]])参数
arrayObj必选项。要赋值为 Array 对象的变量名。size可选项。可选项数组的大小。由于数组的下标是从零开始,创建的元素的下标将从零到 size -1。element0,...,elementN可选项。要放到数组中的元素。这将创建具有 n + 1 个元素的长度为 n + 1 的数组。使用该语法时必须有一个以上元素。说明
创建数组后,能够用 [ ] 符号访问数组单个元素,例如: var my_array = new Array();
for (i = 0; i < 10; i++)
   {
   my_array[i] = i;
   }
x = my_array[4];
由于 Microsoft JScript 中的数组的下标是从零开始的,前面例子中最后一条语句访问数组的第五个元素。该元素中保存的值是 4。 如果只向 Array 的构造函数传递了一个参数,而该参数是数字,则它必须是无符号32位整数(大约40亿)。该值成为数组的大小。如果该值为数值,但小于0或不为整数,发生运行时错误。如果传递给 Array 构造函数的是单个值并且不是数值,设置 length 属性为1,而且唯一的元素值成为单个的传入的参数。请注意 JScript 数组为解析数组,也就是尽管可以分配多个元素给一个数组,但实际上只有包含数据的元素才存在。这减少了数组使用的内存数量。