slice和splice的区别

一、Array.slice() 方法可从已有的数组中返回选定的元素。

发音:[slaɪs]

slice(start,end)从哪到哪开始删除/截取

  • start 开始索引

  • end 结束索引,可以不传,默认截取从start往后的所有元素;

  • 索引可以为负数,从后往前截取,-1倒数第一个,-2倒数第二个;

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

    var arr1 = ["a", "b", "c", "d", "e"];
      console.log(arr1);
      console.log("arr1.slice(1,3):", arr1.slice(1, 3)); //['b','c']
      console.log("arr1.slice(3):", arr1.slice(3)); //['d','e']
      console.log("arr1.slice(1,-2):", arr1.slice(1, -2)); //['b','c']

二、 Array.splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

发音: [splaɪs]

splice(index,howmany,item1...itemx)

  • index 删除开始位置的索引
  • howmany删除的数量
  • item1...itemx传递新元素,这些元素可以插入到开始位置索引前边
  • 会改变原有的数组
 var arr1 = ["a", "b", "c", "d", "e"];
 console.log("splice方法arr1.splice(0,3)",arr1.splice(0,3));//['a','b','c']
 console.log("splice方法arr1.splice(0,3,'zm','xc')",arr1.splice(0,3,'zm','xc'));//["zm", "xc", "d", "e"]

参考链接:
https://www.w3school.com.cn/js/jsref_slice_array.asp
https://www.w3school.com.cn/jsref/jsref_splice.asp

推荐阅读更多精彩内容