1.concat( )方法:基于当前数组中的所有项创建一个新数组。具体来说,该方法先回创建当前
数组的一个副本,然后将接收到的参数添加到这个数组的末尾,最后返回新构建的数组。
具体来说,可分为以下三种情况:
(1)当没有向concat( )传递参数时,它会复制当前数组并返回当前数组的一个副本;如例1所示:
例1:
var str=[1,3,2,'red','green'];
var arr0=str.concat()
alert(arr0); //返回值仍是原来的数组:1,3,2,red,green
(2)当传递的参数是一个或多个数组时,它会将数组的每一项添加到结果数组中;如例2所示:
例2:
var str=[1,3,2,'red','green'];
var arr2=str.concat('111',['11','22','33']);
alert(arr2); //返回结果为:1,3,2,red,green,111,11,22,33
(3)当传递的值不是数组,这些值就会被添加到数组的末尾。如例3所示:
例3:
var str=[1,3,2,'red','green'];
var arr1=str.concat("123");
alert(arr1); //返回结果为:1,3,2,red,green,123
2.slice( )方法:基于当前数中的一个或多个项创建新数组(副本)。
slice( )方法可以接受一个或两个参数,即要返回项的起始和结束位置。
分为两种具体情况:
(1)当只有一个参数时,slice( )方法返回从该参数指定位置开始到当前数组末尾的所有项。
如例4所示:
例4:
var str=[1,2,3,4,5,6,7];
var arr=str.slice(1);
var arr1=str.slice(3);
alert(arr); //返回值为:2,3,4,5,6,7
alert(arr1); //返回值为:4,5,6,7
(2)当接收两个参数时:返回起始和结束位置之间的项,但不包括结束位置的项。
如例5所示:
例5:
var str=[1,2,3,4,5,6,7];
var arr=str.slice(1,3);
var arr1=str.slice(3,4);
alert(arr);//返回值为:2,3
alert(arr1);//返回值为:4
3.splice( )方法:主要有以下三种用法:
(1)删除:可以删除任意数量的项,只需要指定2个参数:要删除的第一项的
位置和药删除的项数。用法如例6所示:
例6:
var str=[1,2,3,4,5,6,7];
var arr=str.splice(2,3);
alert(arr); //返回值是:3,4,5
alert(str); //返回值是:1,2,6,7
(2)插入:可以向指定位置插入任意数量的项,只需要提供3个参数:起始位置、
0(要删除的项数)、要插入的项。如果要插入多个项,可以再传入第4,第5
以至任意多个项。如例7所示:
例7:
var str=[1,2,3,4,5,6,7];
var arr=str.splice(2,0,"color","green");
alert(arr); //返回的是空数组
alert(str); //返回值:1,2,color,green,3,4,5,6,7
(3)替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项。只需指
定3个参数:起始位置、要删除的项数、要插入的任意数量的项。插入的项数不必
与删除的项数相等。如例8所示:
例8:
var str=[1,2,3,4,5,6,7];
var arr=str.splice(2,1,"color","green");
alert(arr); //返回值为:3
alert(str); //返回值:1,2,color,green,4,5,6,7