区分splice、slice和split

205 阅读1分钟

1 结论

slice():截取功能

  • 作用:截取数组、字符
  • 返回值:新数组,截取的元素
  • 不改变原数组

splice():数组增删查改

  • 作用:数组的增删改查
  • 返回值:被删除元素所组成的新数组
  • 改变原数组

split:字符串 => 数组

  • 字符串方法,不是数组的方法
  • 返回值,一个字符串数组

join:数组 => 字符串

1 slice()

const arr = [1, 2, 3, 4, 5]
console.log(arr.slice())     //[ 1, 2, 3, 4, 5 ] 没有参数,截取所有元素
console.log(arr.slice(1))    //[ 2, 3, 4, 5 ] 从索引为1的元素开始截取所有元素
console.log(arr.slice(-2))   //[ 4, 5 ] 从后=>前查,第二个元素截取所有元素
console.log(arr.slice(2, 3)) //[ 3 ]  截取索引2~4的元素,不包括4

2 splice()

改变原数组,返回值是被删除的元素

const arr = [1, 2, 3, 4, 5]
//删除
arr.splice(1)
console.log(arr) //[1] 从索引为1的位置,删除元素
arr.splice(-2)
console.log(arr) //[ 1, 2, 3 ] 从-2位置删除到末尾
arr.splice(2, 2)
console.log(arr) //[ 1, 2, 5 ] 从索引为2的位置删除2个元素
//增加
arr.splice(1, 0, 1)
console.log(arr) //[ 1, 1, 2, 3, 4, 5 ]
//修改
arr.splice(1, 1, 1.5)
console.log(arr); // [ 1, 1.5, 3, 4, 5 ] 删除一个元素在加一个元素

3 split()

将字符串分割成字符串数组,不会改变原来字符串

const str = 'abcdc'
console.log(str.split(''))     // [ 'a', 'b', 'c', 'd', 'c' ] 将字符串分割成字符串数组
console.log(str.split('c')[0]) // ab 
console.log(str.split('c')[1]) // d

4 join()

数组转换为字符串,不改变原来数组

const str = [1, 2, 3]
console.log(str.join())    //1,2,3 默认逗号
console.log(str.join(',')) //1,2,3
console.log(str.join('!')) //1!2!3
console.log(str.toString())//1,2,3 和默认join一致用法