javascript中的splice,slice,split方法详解

由于在实际应用中,这3个方法经常搞混淆,每次都要去查阅资料。所以用笔记记下来,加深印象,方便以后查看

split

定义和用法

split()用于把一个字符串分隔成字符串数组,String对象上的方法

语法

stringObject.split(separator,howmany)

参数 描述
separator 必需,字符串或正则表达式,从该参数指定的地方分割 stringObject
howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数,如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

返回值

一个字符串数组,返回的数组中的字串不包括 separator 自身

注释①:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割
注释②:String.split 执行的操作与 Array.join 执行的操作是相反的
注释③:但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。

示例

1
2
3
4
5
6
7
8
9
10
//注释①代码解析:
'abcdef'.split(''); //返回["a", "b", "c", "d", "e", "f"]

//注释③代码解析:
'a,b,c,d,e,f'.split(/,\w/g); //返回["a", "", "", "", "", ""]
'a,b,c,d,e,f'.split(/,(\w)/); //返回["a", "b", "", "c", "", "d", "", "e", "", "f", ""]


//首位没有字符的情况
"|a|b|c".split("|") //将返回["", "a", "b", "c"]

slice

定义和用法

slice 方法可从已有的数组中返回选定的元素,Array对象的方法

语法

arrayObject.slice(start,end)

参数 描述
start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推
end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素

返回值

返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素

该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法 Array.splice()

示例

1
2
3
[1,2,3,4,5,6].slice(-3); //返回[4, 5, 6]
[1,2,3,4,5,6].slice(-3,-2); //返回[4]
[1,2,3,4,5,6].slice(-3,-4);//返回[]

splice

定义和用法

splice方法向/从数组中添加/删除项目,然后返回被删除的项目

语法

arrayObject.splice(index,howmany,item1,.....,itemX)

参数 描述
index 必需,整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置
howmany 必需,要删除的项目数量。如果设置为 0,则不会删除项目
item1, …, itemX 可选,向数组添加的新项目

返回值

类型 描述
Array 包含被删除项目的新数组,如果有的话

splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素
如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组
该方法会改变原始数组

示例

1
2
3
var arr = [1,2,3,4,5,6]
arr.splice(2,2,7); //返回[4, 5, 6])
console.log(arr); //返回[1, 2, 7, 5, 6]