本内容是《Web前端开发之Javascript视频》的课件,请配合大师哥《Javascript》视频课程学习。
数组的操作:
concat()方法:
基于当前数组,将多个元素连接一起成为新的数组并返回;新数组中的元素按连接时的顺序排列。(具体来说,这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾,最后返回新构建的数组。当需要合并多个数组时,此方法比较方便);
语法:数组名.concat( [ item1, [ item2, [ item3 , […, [ itemN ] ] ] ] ] );
item:可选项,可以是数组对象也可以是单个数组元素,或者是其它对象;
var arr = [1,2];arr = arr.concat();arr = arr.concat(3,4);arr = arr.concat(3,[4,5]);arr = arr.concat([3,4],[5,6]);arr = arr.concat([3,4],[5,6,[7,8]]);console.log(arr);
concat()不会递归扁平化数组的数组,也不会修改原来的数组;当没有给concat()方法传递参数的情况下,它只是复制当前数组并返回副本。
slice()方法:
能够基于当前数组中的一个或多个项创建一个新数组;
语法:slice(start [, end]);
其接受一或两个参数,即要返回项的起始和结束位置;在只有start一个参数的情况下,slice()方法返回从该位置开始到当前数组末尾的所有项;如果两个参数,该方法返回起始和结束位置之间的项,但不包括结束位置的项;
其不会影响原有数组;如:
var colors=["red","green","blue","yellow","purple"];var c = colors.slice(1);c = colors.slice(1,4);c = colors.slice(1,-2);c = colors.slice(-4,-2);c = colors.slice(3,1);console.log(colors);console.log(c);
如果slice()方法的参数中有一个负数,则用数组长度加上该数来确定相应的位置;(如,在一个包含5项的数组上调用 slice(-2,-1)与调用slice(3,4)得到的结果相同;)
如果结束位置小于起始位置,则返回空数组。
splice()方法:
可以删除、替换或插入数组元素,是最强大的数组方法,有很多种用法;
具体作用是,从一个数组中移除一个或多个元素;剩下的元素组成一个数组,移除的元素组成另一个新数组并返回;同时,原数组可以在移除的开始位置处顺带插入一个或多个新元素,达到修改替换数组元素的目的;
语法:数组名. splice( start, deleteCount, [ item1 [, item2 [ , . . . [ , itemN ] ] ] ] );
start:必选项,表示从数组中剪切的起始位置下标索引号。
deleteCount:必选项,表示将从数组中切取的元素的个数。
item:可选项,表示切取时插入原数组切入点开始处的一个或多个元素;
- 1)删除:可以删除任意数量的项,只需要指定2个参数,如:splice(0,2);// 删除数组中前两项;如果只指定1个参数,则删除从该位置到结尾的元素;
- 2)插入:可以向指定位置插入任意数量的项,需要指定3个参数,其中第二个参数为0;如果要插入多个项,可再传入第4第5等任意多个项,如:splice(2,0,”red”,”green”);
- 3)替换:可以向指定位置删除任意数量的项,同时插入任意数量的项,需要指定至少3个参数;插入的项数不必与删除的项数相等,如:splice(2,1,”red”,”green”);
splice()方法始终会返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何项,则返回一个空数组);
var a = [1,2,3,4,5,6,7,8];// var b = a.splice(4);// var b = a.splice(1,4);// var b = a.splice();// var b = a.splice(1,0,'a','b');// var b = a.splice(1,4,'a','b');var b = a.splice(1,4,['a','b']);console.log(a);console.log(b);
区别于concat(),splice()会插入数组本身而非数组的元素;
第一个参数可以接受负数,如果为负数,则