1、slice()
定义 | 返回从数组中选定的元素 |
使用范围 | Array 和 String |
语法 | obj.slice(start, end) |
参数 | start:必需。规定从数组(字符串)的哪个index(从0开始)开始选取。 如果是负数,则从数组(字符串)尾部算index,比如,-1指最后一个元素,-2指倒数第二个元素,以此类推。 end:可选。规定到哪个index之前结束(不包括end)。 如果没有指定该参数,那么切分的数组(字符串)包含从start到数组(字符串)结束的所有元素。 如果这个参数是负数,那么它规定的是从数组(字符串)尾部开始算起的元素。 |
返回值 | 返回一个新的数组(字符串),包含从start到end(不包含改元素)的obj中的元素。 |
说明 | 该方法并不会修改数组(字符串),而是返回一个子数组(子串) |
实例分析
- Array
var arr = [151, 1, 10, 58, 999, 100000]; document.write(arr.slice(0)+"</br>"); //输出:151,1,10 document.write(arr.slice(1,3)+"</br>"); //输出:1,10 document.write(arr.slice(1,-1)+"</br>"); //输出:1, 10, 58, 999 document.write(arr.slice(-3,-1)+"</br>"); //输出:58, 999 document.write(arr.slice(-3)+"</br>"); //输出:58, 999, 100000 document.write(arr.slice(-1)+"</br>"); //输出:100000
- String
var str = "abcdefghijk"; document.write(str.slice(0)+"</br>"); //输出:abcdefghijk document.write(str.slice(1,5)+"</br>"); //输出:bcde document.write(str.slice(1,-3)+"</br>"); //输出:bcdefgh document.write(str.slice(-5)); //输出:ghijk
2、splice()
定义 | 向/从数组中添加/删除项目,然后返回被删除的项目。(该方法会改变原始数组) |
使用范围 | Array |
语法 | arrayObject.splice(index, howmany, ite1,......, itemxX) |
参数 | index: 必需。正数,规定添加/删除项目的index,使用负数可从数组结尾处规定位置。 howmany: 必需。要删除的项目数量。如果设置为0,则不会删除项目(添加)。 item1, ..., itemX: 可选。向数组添加的新元素。 |
返回值 | Array: 包含被删除项目的新数组,如果有的话。 |
说明 | splice()方法可删除从Index处开始的零个或者多个元素, 并且用参数列表中声明的一个或者多个值来替换那些被删除的元素。 如果从arrayObject中删除了元素,则返回的是包含被删除的元素的数组。 |
- 例1 :从数组中删除元素,并返回删除元素。
var arr = ["banana", "apple", "orange", "tomato"]; document.write(arr.splice(0, 3)+"</br>"); //输出:banana,apple,orange (删除了前3项,并返回删除元素) document.write(arr); //输出:tomato(剩余项)
- 例2:向数组中添加元素(无返回值)。
var arr = ["banana", "apple", "orange", "tomato"]; arr.splice(1,0,"pear","strawberry") //在index=1之后添加了两个元素(没有返回值) document.write(arr); //输出:banana,pear,strawberry,apple,orange,tomato
- 例3:替换数组中的元素(删除后添加)。
var arr = ["banana", "apple", "orange", "tomato"]; arr.splice(1,2,"pear","strawberry") //替换原数组中的元素(删除了2项,再添加项) document.write(arr); //输出:banana,pear,strawberry,tomato
3、split()
定义 | 用于把一个字符串分割成字符串数组 |
使用范围 | String |
语法 | stringObject.split(seperator, howmany) |
参数 | seperator: 必需。字符串或者正则表达式,从该参数指定的地方分割stringObject。 howmany: 可选。该参数可指定返回的数组的最大长度。 如果设置了该参数,返回的子串不会多于这个参数指定的数组。 如果没有设置改参数,整个字符串都会被分割,不考虑它的长度。 |
返回值 | 一个字符串数组。该数组是在separator指定的边界处将字符串stringObject分割成子串创建的。 返回的数组中的子串不包括seperator自身。但是,如果seperator是包含子表达式的正则表达式, 那么返回的数组中包括与这些子表达式匹配的字符串(但不包括与整个正则表达式匹配的文本)。 |
说明 | 如果把空字符串('')用作seperator,那么stringObject中的每个字符之间都会被分割; String.split()执行的操作与Array.join执行的操作是相反的。(join()把把字符串数组转化成字符串) |
- 例1:空字符分割字符串成字符串数组。
var str1 = "Hello world, I am in China"; var str2 = "Can I help you"; var str3 = "abcdefg"; document.write(str1.split(",")+"</br>"); //输出:['Hello world', ' I am in China'] (在“,”处分割字符串成字符串组) document.write(str1.split(" ")+"</br>"); //输出:['Hello', 'world', '', 'I', 'am', 'in', 'China'] (在空格处分割) document.write(str2.split("")+"</br>"); //输出:['C', 'a', 'n', ' ', 'I', ' ', 'h', 'e', 'l', 'p', ' ', 'y', 'o', 'u'] document.write(str3.split("")+"</br>"); //输出:['a', 'b', 'c', 'd', 'e', 'f', 'g']
4、substring()
定义 | 提取字符串中介于两个指定index之间的字符 |
使用范围 | String |
语法 | stringObject.substring(start, stop) |
参数 | start:必需。一个非负的正数,提取字符串开始的index。 stop:可选。一个非负的正数,提取字符串结束的index+1。提取从start开始至stop之前的字符串元素。(含首不含尾) 如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
返回值 | 一个新的字符串,该字符串值包含stringObject的一个子字符串, 其内容是从start处到stop-1处的所有字符,其长度为stop减start。 |
说明 | substring()方法返回的子串包括start处的字符,但不包括stop处的字符。 如果stop和start相等,返回的是一个空串。 如果start比stop大,那么该方法在提取子串之前会先交换这两个参数。 与slice()和substr()不同的是,substring()不接受负的参数。 |
- 例1:
var str = "hello world"; document.write(str.substring(3)+"</br>"); //输出:lo world (包括空格符) document.write(str.substring(3,9)+"</br>"); //输出:lo wor document.write(str.substring(9,3)); //输出:lo wor
5、substr()
定义 | 在字符串中抽取从start下表开始的指定书目的字符。 |
使用范围 | String |
语法 | stringObject.substr(start, length) |
参数 | start:必需。要抽取的子串的其实下表。必需是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。 也就是说,-1指字符串中最后一个字符,-2指倒数第二个字符,以此类推。 length:可选。字串中的字符数,必须是数值,如果省略了该参数,那么返回从stringObject的开始位置到结束的字符串。 |
返回值 | 一个新的字符串,包含从stringObject的start处开始的length个字符。 |
说明 | substr()的参数指定的是子串的开始位置和长度,因此它可以替代substring()和slice()来使用。 ECMAscript中没有对该方法进行标准化,因此反对使用。 |
实例说明
- 例1
var str = "hello world"; document.write(str.substr(1,7)+"</br>"); //输出:ello wo document.write(str.substr(3)+"</br>"); //输出:lo world document.write(str.substr(-3,5)+"</br>"); //输出:rld (length大于可抽取的字符)
总结
slice(strat, end)、substr(start, length)、substring(start, stop) 这三个方法都可以用于提取字符串,slice()还可以用于提取数组元素且参数可为负数;substr()相比于substring()不同点在于参数,substr()也可以使用负数;split()用于把字符串分割成字符串数组;splice()用于添加/删除字符串。
------------------------------------------------- end ------------------------------------------------------
参考文章:https://www.cnblogs.com/WananPr1st/p/6451501.html