slice、splice、split、substring的区别

528 阅读2分钟

slice

用于截取数组或者字符串 传入两个参数

参数1:开始截取的下标
参数2(可选):结束截取的下标 (默认截取到字符串或数组末尾)

参数不能颠倒顺序 否则查找为空数组

参数可以为负数 -> 从后往前截取

-1 为倒数第一个元素

返回值:一个新的数组 不改变原数组

var arr = [1,2,3,4,5,6,7]

//下标2截取到下标5
arr.slice(2,5) // [3, 4, 5]
//下标2截取到末尾
arr.slice(2) // [3, 4, 5, 6, 7]
//从倒数第二个下标截取到末尾
arr.slice(-2) //[6, 7]

//无法获取到元素
arr.slice(5,2)  // []

作为字符串调用与数组调用的结果相同
//字符串内部也是有下标的
var str = 'i am good man'

str.slice(-5) //"d man"

subString

直观来讲 拿 subString 和 slice做比较更合适

subString只能用于截取字符串

传入两个参数

参数1:开始截取的下标位置
参数2:可选 结束截取的位置 和slice一样

参数为负数时 内部会默认转换为0

如果后面的参数比前面的参数小 会进行位置调换 再做截取操作

var str = 'i am good man'

str.substring(6,-1)  //"i am g"

//1、先将-1转换为0 
//2、将1和6调换位置
//3、进行字符串的截取

与slice相同 subString也是返回一个新的字符串 不会改变原数组

splice

splice和slice单词拼写很像 但是功能却有很大的区别

splice更像是slice的增强版 功能非常强大

splice是数组的方法

传入n个参数

参数1:必选 指定一个下标 作为后面参数操作的起始下标

参数2:必选 (删除操作) 从参数1指定的下标开始  删除数组中的值 并将删除的值作为方法的返回值  参数2指定删除的数量
不删除则填 0  即可

参数3-n:可选 (插入操作)从参数1开始为数组添加元素  可一次添加多个元素

返回值 参数2指定删除的元素数组

这个方法是在原数组上做操作 所以会改变原数组

var arr = [1,2,3,4,5,6,7]

arr.splice(2,2) //3, 4]
console.log(arr)  //[1, 2, 5, 6, 7]

splice也支持负数操作

当参数1为负数时 下标从后往前计算

参数2为负数 默认转换为0

split

字符串方法 作用:将字符串以特定的字符进行分割

返回值: 一个字符串数组

参数1 用于分割的 字符 或者 一个正则表达式
参数2  指定返回数组的最大长度  如果分割后的数组长度大于这个值 则会省略后面分割出来的字符串