slice,splice和split 区别及用法整理总结

以下方法涉及到截取范围的都是 包含头不含尾,如arr.slice(2,5)指截取下标为2、3、4的元素。

slice

用法:array.slice(start,end)

解释:该方法是对数组进行部分截取,并返回一个数组副本;
参数start是截取的开始数组索引
end参数为截取截止位置(注意不包含该位置的元素)。

注意:
(1)该方法适用于数组与字符串
(2)可使用负值从数组的尾部选取元素。
(3)如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
(4)该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()。

实例:

//如果不传入参数二,那么将从参数一的索引位置开始截取,一直到数组尾
var a=[1,2,3,4,5,6];
var b=a.slice(0,3);    //[1,2,3]
var c=a.slice(3);       //[4,5,6]

//如果两个参数中的任何一个是负数,array.length会和它们相加,试图让它们成为非负数,举例说明:
//当只传入一个参数,且是负数时,length会与参数相加,然后再截取
var a=[1,2,3,4,5,6];
var b=a.slice(-1);    //[6]

//当只传入一个参数,是负数时,并且参数的绝对值大于数组length时,会截取整个数组
var a=[1,2,3,4,5,6];
var b=a.slice(-6);    //[1,2,3,4,5,6]
var c=a.slice(-8);    //[1,2,3,4,5,6]

//当传入两个参数一正一负时,length也会先于负数相加后,再截取
var a=[1,2,3,4,5,6];
var b=a.slice(2,-3);    //[3]

//当传入一个参数,大于length时,将返回一个空数组
var a=[1,2,3,4,5,6];
var b=a.slice(6);  //[]
splice

用法:array.splice(start,deleteCount,item…)

解释:splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
参数start是从数组array中移除元素的开始位置。
参数deleteCount是要移除的元素的个数。
item 为向数组添加的新项目。

注意:
该方法会改变原始数组。

实例:

var a=['a','b','c'];
var b=a.splice(1,1,'e','f');    //a=['a','e','f','c'],b=['b']
split

用法:string.split(separator,limit)

解释:方法用于把一个字符串分割成字符串数组。
separator 必选参数可以是一个字符串或一个正则表达式。从该参数指定的地方分割 string。
limit 可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

注意:
(1)如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
(2)String.split() 执行的操作与 Array.join 执行的操作是相反的。

//再举一个简单的例子
var a="0123456";
var b=a.split("",3);    //b=["0","1","2"]
上一篇:响应式数组方法


下一篇:JS删除数组元素 splice