1. 定义数组
1.1
用关键词 new 来创建数组对象,然后可向数组添加任意个值
var arr=new Array()arr[0]="a"arr[1]="b"arr[2]="c"复制代码
1.2
new的时候规定数量
var arr=new Array(3)arr[0]="a"arr[1]="b"arr[2]="c"复制代码
1.3
直接在new对象里赋值
var arr=new Array("a","b","c")复制代码
1.4
中括号的形式
var arr=["a","b","c"];复制代码
2. 数组操作
2.1 concat()
用于连接两个或多个数组,不改变原数组
var a = [1,2,3];document.write(a.concat(4,5));//1,2,3,4,5复制代码
var arr = new Array("George","John","Thomas");var arr2 = new Array("James","Adrew","Martin")var arr3 = new Array("William","Franklin")document.write(arr.concat(arr2,arr3))//George,John,Thomas,James,Adrew,Martin,William,Franklin复制代码
2.2 join()
把数组中的所有元素放入一个字符串,并通过指定的分隔符进行分隔
括号里面不填
var arr = new Array("George","John","Thomas");document.write(arr.join());//George,John,Thomas复制代码
有分隔符"."
var arr = new Array("George","John","Thomas");document.write(arr.join("."));//George.John.Thomas复制代码
括号里面为空字符(不是空格)
var arr = new Array("George","John","Thomas");document.write(arr.join(""));//GeorgeJohnThomas复制代码
括号里面为空格
var arr = new Array("George","John","Thomas");document.write(arr.join(" "));//George John Thomas复制代码
2.3 pop()
删除并返回数组的最后一个元素,如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值
var arr = new Array("George","John","Thomas");document.write(arr); //George,John,Thomasdocument.write(arr.pop()); //Thomas//删除一个元素后,数组只剩两个元素document.write(arr); //George,John复制代码
2.4 push()
向数组的末尾添加一个或多个元素,并返回新的长度
var arr = new Array("George","John","Thomas");document.write(arr + "")document.write(arr.push("James",'Mike') + "")document.write(arr);//返回值George,John,Thomas5George,John,Thomas,James,Mike复制代码
2.5 reverse()
用于颠倒数组中元素的顺序
var arr = new Array("George","John","Thomas");document.write(arr + "");document.write(arr.reverse());//返回值George,John,ThomasThomas,John,George复制代码
2.6 shift()
把数组的第一个元素从其中删除,并返回第一个元素的值。如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值
var arr = new Array("George","John","Thomas");document.write(arr + "")document.write(arr.shift() + "")document.write(arr);//返回值George,John,ThomasGeorgeJohn,Thomas复制代码
2.7 slice()
从已有的数组中返回选定的元素
obj.slice(start,end)
start为必须参数,规定从这个下标开始选择(包括这个下标),如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素
end为可选参数,规定从何处停止选择(不包括这个下标),如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素
2.7.1
var arr = new Array("George","John","Thomas");document.write(arr.slice(1) + "");document.write(arr);//返回值George,John,ThomasJohn,ThomasGeorge,John,Thomas复制代码
不改变原数组,从下标1开始选取,直到结束
2.7.2
var arr = new Array("George","John","Thomas",James,Adrew,Martin);document.write(arr.slice(2,4) + "");//返回值George,John,Thomas,James,Adrew,MartinThomas,James复制代码
下标为2开始,到下标为4(不包括4)
2.8 sort()
用于对数组的元素进行排序,数组在原数组上进行排序,不生成副本
如果调用该方法时没有使用参数,按照字符编码的顺序进行排序
2.8.1
var arr = new Array("George","John","Thomas",James,Adrew,Martin);document.write(arr + "");document.write(arr.sort());//返回值George,John,Thomas,James,Adrew,MartinAdrew,George,James,John,Martin,Thomas复制代码
按首字母的字符编码进行排序
2.8.2
var arr = new Array(10,5,40,25,1000,1);document.write(arr + "")document.write(arr.sort())//返回值10,5,40,25,1000,11,10,1000,25,40,5复制代码
按第一个数字的字符编码进行排序
2.8.3
通过插入比较函数function sortNumber(a,b){return a - b}绝对排序
即a-b为升序,b-a为降序
var arr = new Array(10,5,40,25,1000,1);document.write(arr.sort(sortNumber));function sortNumber(a,b){return a - b;}//返回1,5,10,25,40,1000复制代码
var arr = new Array(10,5,40,25,1000,1);document.write(arr.sort(sortNumber));function sortNumber(a,b){return b - a;}//返回1000,40,25,10,5,1复制代码
2.9 splice()
向/从数组中添加/删除项目,然后返回被删除的项目
2.9.1
var arr = new Array("George","John","Thomas",James,Adrew,Martin);document.write(arr + "");arr.splice(2,0,"William");document.write(arr + "");//返回值George,John,Thomas,James,Adrew,MartinGeorge,John,William,Thomas,James,Adrew,Martin复制代码
arr.splice(2,0,"William");
中,2表示从下标为2开始添加/删除元素,添加的元素为"William",0表示不删除元素
2.9.2
var arr = new Array("George","John","Thomas",James,Adrew,Martin);document.write(arr + "");arr.splice(2,1,"William");document.write(arr);//返回值George,John,Thomas,James,Adrew,MartinGeorge,John,William,James,Adrew,Martin复制代码
arr.splice(2,1,"William");
2表示从下标2开始,1表示删除一个元素,即删除下标为2的元素,并在下标为2处添加"William"
2.9.3
var arr = new Array("George","John","Thomas",James,Adrew,Martin);document.write(arr + "");arr.splice(2,3,"William");document.write(arr);//返回值George,John,Thomas,James,Adrew,MartinGeorge,John,William,Martin复制代码
arr.splice(2,3,"William");
,从下标为2开始删除三个元素,并在下标为2处添加"William"
2.10 unshift()
向数组的开头添加一个或更多元素,并返回新的长度
var arr = new Array("George","John","Thomas");document.write(arr + "");document.write(arr.unshift("William") + "");document.write(arr);//返回值George,John,Thomas4William,George,John,Thomas复制代码