- 创建Array对象的语法:
var myArray = new Array();//空数组,length为0var myArray = new Array(size);//长度为size,元素为undefined
var myArray = new Array(element0,element1,...elementn);//创建数组并赋值
var myArray = [1,2,3];
- Array对象的属性
- constructor
- length
可读写,进行修改时,有可能会造成元素值的丢失。var arr=[1,2,3,4,5,6]; alert(arr.length); //显示数组的长度6 arr.length=10; //增大数组的长度
alert(arr.length); //显示数组的长度已经变为10 alert(arr[8]); //显示第9个元素的值,为undefined arr.length=5; //将数组的长度减少到5
alert(arr[8]); //再次访问时,第9个元素已经变为"undefined" arr[9] = 12; //将数组长度恢复为10 alert(arr.length); //10 - prototype
- Array对象的方法
1 function writeLine(element){ 2 document.write(element + "<br />"); 3 }
- concat([param1,param2,...,paramn])
把所有参数从后面连接到数组中,参数可以是数组,也可以是具体元素,可同时包含数组和具体元素两种参数,并且会把数组中元素添加到对象中,而不是数组。但是,需要注意的是,该方法不会改变现有数组,仅仅返回一个连接后的数组副本。无参则表示返回原数组的副本,与slice(0)效果相同。 - join([separator])
在每两个相邻元素之间插入separator(默认为逗号)来生成一个一个字符串,并返回该字符串。 - pop()
删除并返回数组的最后一个元素。若数组为空,则pop()不改变数组,返undefined值。该方法直接修改原有数组。 - push(element1[,element2...,elementn])
向数组末尾添加至少一个元素,并且返回新的长度。该方法直接修改原有数组。 - reverse()
颠倒数组中元素的顺序。该方法会改变原来的数组,而不是创建并返回新的数组。 - shift()
删除并返回数组的第一个元素。若数组为空,则不尽兴任何操作,并返回undefined。该方法直接修改原有数组。 - slice(start[,end])
从已有数组中返回start到end(不包括end)范围内的元素。start和end为负数的时候,指倒数第n个位置。如-1,指倒数第一个元素,-2指倒数第二个元素,以此类推。该方法不会修改数组,而是返回一个子数组。 - sort([sortFunc])
对数组元素进行排序,返回对数组的引用,不生成副本而是直接作用于原数组。可选参数必须是具有两个参数(a,b)的函数,比较a和b,并返回一个数字,用于说明两个值的顺序(a在b前面返回负数,a和b并列返回0,a在b后面返回正数)。若不传入可选参数,将按字符编码顺序对数组中的元素进行排序。1 function arraySort(){ 2 debugger; 3 //var myArray = new Array(5,8,6,‘a‘,‘c‘,‘b‘,‘e‘,1,3,2,4);字符夹杂在数字中(或数字夹杂在字符中)混合,结果会乱。 4 //var myArray = new Array(1,3,2,4,‘a‘,‘e‘,‘c‘);如此却不会,先排序字符,再排序数字。何解?编码问题吗? 5 var myArray = new Array(1,4,3,8,6,9); 6 writeLine(myArray); 7 myArray.sort(compareLarge2Small); 8 writeLine(myArray); 9 myArray.sort(compareSmall2Large); 10 writeLine(myArray); 11 } 12 //从大到小排序 13 function compareLarge2Small(a,b){ 14 if(a>b){ 15 return -1; 16 } 17 else if(a == b){ 18 return 0; 19 } 20 else{ 21 return 1; 22 } 23 } 24 //从小到大排序 25 function compareSmall2Large(a,b){ 26 if(a>b){ 27 return 1; 28 } 29 else if(a == b){ 30 return 0; 31 } 32 else{ 33 return -1; 34 } 35 }
- splice(index,amount[,item1,item2,...,itemn]) 从数组中删除[并替代(如果有可选参数)]一定数量(index为第一个,共amount个)的元素,返回被删除元素(如果有的话),该方法会改变原始数组。index:必需,指定添加/删除的位置,可使用负数从结尾处逆向指定位置。amout:必需,>=0,要删除的项目数。item1..itemn:向数组添加的新项目。
1 function arraySplice(){ 2 var splArray = new Array(1,2,3,4,5,6,7,8,9); 3 var del = splArray.splice(5,3,‘a‘,‘b‘,‘c‘); 4 writeLine(del); 5 writeLine(splArray); 6 }
- toSource()
表示对象的源代码,通常由javascript在隐式调用,并不显式地出现在代码中,并且不是所有的浏览器都支持。 - toString()
返回该数组的字符串表示。返回值与无参join()一样。 - toLocalString()
- unshift(newelement1[,newelement2,...,newelementn])
向数组的开头添加至少一个元素,并返回新的长度。直接修改原数组。 - valueOf()
返回Array对象的原始值,该原始值由Array对象派生的所有对象继承,通常由javascript隐式调用,并不会显式出现在代码中。
注意事项:
- 顺序指定位置是从0开始,逆序是从-1开始