Array对象
Array是JavaScript的内置对象,同时也是一个构造函数,可以用它生成新的数组。
new Array()可以接受长度或内容,但是很难使用,建议使用字面量来创建数组。
判断数组
typeof [];//'object' $('div') instanceof Array; Array.isArray(new Array(1,2,3));//ES5
动态长度
不同于java,长度不是固定的
var arr=new Array(5);//创建长度为5的数组 arr[5]=6;//长度变为6 arr.push;//尾部增加 arr.pop;//尾部减少:arr. length-=1 arr.unshift;//头部增加 arr.shift;//头部减少
数组迭代
最稳妥的办法是使用for(var i;i<array.length;i++),但是创建了额外的变量i
for(i in array)可能会遍历出原型链或者数组本身额外的属性
如果使用jquery可以使用$.each
ES5可以使用
arr.forEach(function(x, index, a){ console.log(x + '|' + index + '|' + (a === arr)); });
其他方法
sort默认按照字符串字典顺序
arr = [13, 24, 51, 3]; arr.sort(); // [13, 24, 3, 51] arr.sort(function(a, b) { return a - b; }); // [3, 13, 24, 51]
valueOf方法返回数组本身,toString 方法返回数组的字符串形式。
var a = [1,2,3]; a.valueOf()// [1,2,3] a.toString()// "1,2,3" 和join()一样? var a = [1,2,3,[4,5,6]]; a.toString()// "1,2,3,4,5,6"
类数组(Array-Like Object)
未找到明确定义,我认为拥有number类型的length属性就叫做类数组,比如字符串和jquery对象
Array.prototype.join.call('hello',',')
浙公网安备 33010602011771号