splice和slice用法

splice(下标,个数)是操作数组的方法,返回被删除的元素,操作后原数组会被改变

splice()只有1个参数时:

let arr = [1,2,3,4,5,6,7,8,9]
let arr1 = arr.splice(3)
//包含该下标元素,删除后面所有的
console.log(arr)  //[1, 2, 3]
console.log(arr1)  //[4, 5, 6, 7, 8, 9]

splice()有2个参数时:

 let arr = [1,2,3,4,5,6,7,8,9]
 let arr1 = arr.splice(1,3)
 //(起始下标1,删除3个)
 console.log(arr)  //[1, 5, 6, 7, 8, 9]
 console.log(arr1)  //[2, 3, 4]

splice()有3个参数或多个时:
第3个及后面的参数都视为插入的元素

 let arr = [1,2,3,4,5,6,7,8,9]
 let arr1 = arr.splice(1,5,20)
  //(起始下标1,删除5个,20插入到起始下标的位置)
 console.log(arr)  //[1, 20, 7, 8, 9]
 console.log(arr1)  //[2, 3, 4, 5, 6]

参数为负数:
如果第1个参数为负数,从右到左开始删除:

 let arr = [1,2,3,4,5,6,7,8,9]
 let arr1 = arr.splice(-2)
 console.log(arr)  //[1, 2, 3, 4, 5, 6, 7]
 console.log(arr1)  //[8, 9]

如果第2个参数为负数,视为0:

 let arr = [1,2,3,4,5,6,7,8,9]
 let arr1 = arr.splice(-2,-4)
 console.log(arr)  //[1, 2, 3, 4, 5, 6, 7]
 console.log(arr1)  //[]

slice(起始下标,结束下标)可以操作数组和字符串,不改变原数组或字符串,返回被截取的元素

slice()操作数组时:
slice()只有1个参数时:

let arr = [1,2,3,4,5,6,7,8,9]
let arr1 = arr.slice(3)
//包含该下标元素,删除后面所有的
console.log(arr)  // [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(arr1)  // [4, 5, 6, 7, 8, 9]

slice()有2个参数时:

 let arr = [1,2,3,4,5,6,7,8,9]
 let arr1 = arr.slice(3,6)
 //(包含的起始下标,不包含的结束下标)
 console.log(arr)  // [1, 2, 3, 4, 5, 6, 7, 8, 9]
 console.log(arr1)  // [4, 5, 6]

第3个或多个参数无效

参数为负数:

 let arr = [1,2,3,4,5,6,7,8,9]
 let arr1 = arr.slice(3,-2)
 //(从左开始截取下标,负数从右开始截取下标)
 console.log(arr)  // [1, 2, 3, 4, 5, 6, 7, 8, 9]
 console.log(arr1)  // [4, 5, 6, 7]
 let arr = [1,2,3,4,5,6,7,8,9]
 let arr1 = arr.slice(-4,-2)
 //(负数从右开始截取下标,负数从右开始截取下标)
 console.log(arr)  // [1, 2, 3, 4, 5, 6, 7, 8, 9]
 console.log(arr1)  // [6, 7]

如果第二个负数参数的位置超过第一个参数的位置,则返回 [ ]

 let arr = [1,2,3,4,5,6,7,8,9]
 let arr1 = arr.slice(3,-6)
 console.log(arr)  // [1, 2, 3, 4, 5, 6, 7, 8, 9]
 console.log(arr1)  // []

slice()操作字符串时,参数情况和返回结果跟数组是一样的

 let arr = 'abcdefghijklmn'
 let arr1 = arr.slice(2,4)
 console.log(arr)  // abcdefghijklmn
 console.log(arr1)  // cd
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值