js 基础数组方法之slice和splice

230 阅读1分钟

我一直一直记不住这两个的用法区别,今天专门写一篇文章来记录一下。

首先,我们从英文翻译着手。

slice:  切下;把…分成部分;将…切成薄片

splice:   捻接(绳子);拼接,接合(胶片等);移接(基因);使结婚

其实弄懂了它们各自的英文翻译之后,基本就能摸清这两个方法的用法。

eg:

let arr = [1, 2, 3];
const res = arr.slice(0,1);  // 把arr从 0开始切到1, res => [0]
console.log(arr);    // [1,2,3], 注意不影响原数数组



let arr = [1, 1, 1];
const res = arr.splice(0, 1, 8);    // 如果第三个参数不写,则直接删除从0开始的1个元素。
console.log(res);    // [1], 返回被删除的元素
console.log(arr);    // 会改变原数组, [8, 1, 1]

slice主要用于从已有的数组中返回选定的元素。

相对来说,splice更复杂更强大一些。能够对原数组做各种调整

splice用法1, 删除元素

// 删除第一个数组元素
let arr = [1,2,3];
arr.splice(0, 1);    // 1
console.log(arr);    // [2, 3]

splice用法2,添加元素

let arr = [1,2,3];
arr.splice(3, 2, 6, 6); // []
console.log(arr);  // [1, 2, 3, 6, 6]

splice用法3,修改元素

let arr = [1,2,3];
arr.splice(2, 2, 6, 6);    // [3]
console.log(arr);     // [1,2,6,6]

总结:

  • slice用于数组的‘切片’功能,类似于把数组切成一部分后使用,不影响原数组。两个参数都是数组下标,分别是需要切片的开始和结束数组下标。
  • splice主要用于数组的拼接、移除功能,会影响原数组。一共有三个参数,第一个参数规定了从何处开始添加、删除元素,即数组下标。第二个参数是可添加、删除的个数。第三个参数表示代替的数组元素。