A-A+
javascript中数组长度arrayObj.length介绍
arrayObj.length这个我想大家都会看到过,像获取普通字符串长度我们会用a.length哦,那么我们要怎么取得数组长度呢,下面我来介绍一下关于取得数组长度arrayObj.length用法。
返回一个整数值,这个整数比数组中所定义的最高位元素的下标大 1。
numVar = arrayObj.length
参数
numVar
必选项。任意数值。
arrayObj
必选项。任意 Array 对象。
说明:因为一个数组中的元素并不一定是连续的,所以 length 属性也并不一定就等于数组中的元素个数。例如,在下面的数组定义中,my_array.length 中就包含 7,而不是 2,代码如下:
- var arr=[12,23,5,3,25,98,76,54,56,76];
- //定义了一个包含10个数字的数组
- alert(arr.length); //显示数组的长度10
- arr.length=12; //增大数组的长度
- alert(arr.length); //显示数组的长度已经变为12
- alert(arr[8]); //显示第9个元素的值,为56
- arr.length=5; //将数组的长度减少到5,索引等于或超过5的元素被丢弃
- alert(arr[8]); //显示第9个元素已经变为"undefined"
- arr.length=10; //将数组长度恢复为10
- alert(arr[8]); //虽然长度被恢复为10,但第9个元素却无法收回,显示"undefined"
由上面的代码我们可以清楚的看到length属性的性质,但length对象不仅可以显式的设置,它也有可能被隐式修改,javascript中可以使用一个未声明过的变量,同样,也可以使用一个未定义的数组元素,指索引超过或等于length的元素,这时,length属性的值将被设置为所使用元素索引的值加1,例如下面的代码:
- var arr=[12,23,5,3,25,98,76,54,56,76];
- alert(arr.length);
- arr[15]=34;
- alert(arr.length);
再看一段代码:
- var arr = new Array();
- arr["a"] = 'a';
- document.write(arr.length); //output 0
- arr[-1] = 'b';
- document.write(arr.length); //output 0
- arr[2] = 1;
- document.write(arr.length); //output 3
- for (var i = 0 ; i < arr.length ; i++){
- document.write(arr[i] + "t");
- }
//output undefine undefine 1
前两次输出可以看出以字符串和负数为下标的元素并不记录到数组长度中,与php的数组不同的是在javascript中数组长度只记录下标为正整数的元素,数组的长度等于最大数组下标的值加1(数组下标的范围为0~2^32-2),上面代码中的arr['a']等同于arr.a
如需遍历数组元素则需使用for in方法,代码如下:
- for (var x in arr){
- document.write(x+"|"+ arr[x]+"t");
- } //output a|a -1|b 1|1