请说明数组的 splice 和 slice 方法的区别?

推荐答案

splice()slice() 都是 JavaScript 中用于操作数组的方法,但它们的功能和用法有显著区别:

  1. splice():

    • 修改原数组: splice() 会直接修改调用它的原数组。
    • 主要用于添加、删除或替换数组元素: 它接受多个参数,可以指定起始索引、删除元素的数量以及要插入的新元素。
    • 返回值是被删除的元素组成的数组: 如果没有删除元素,则返回空数组。
  2. slice():

    • 不修改原数组: slice() 会创建一个原数组的浅拷贝,不会修改原数组本身。
    • 主要用于提取数组的一部分: 它接受起始索引和结束索引(可选)作为参数,返回一个新的数组,包含原数组中指定索引范围的元素。
    • 返回值是提取出的新数组: 不会改变原数组。

简而言之: splice() 修改原数组并用于删除/插入元素, slice() 不修改原数组并用于提取子数组。

本题详细解读

splice() 方法详解

splice() 方法的语法如下:

  • start: 必需。指定修改开始位置的索引。
  • deleteCount: 可选。整数,指定要删除的元素数量。如果设置为 0,则不删除任何元素。
  • item1, item2, ...: 可选。要添加到数组的新元素。

示例:

-- -------------------- ---- -------
----- --- - --- -- -- -- ---

-- ----
----- ------- - ------------- --- -- --- - ----- - ---
-----------------       -- --- --- -- --
---------------------  -- --- --- --

-- ----
------------- -- -- --- -- --- - --------- - - -
-----------------       -- --- --- -- -- -- --

-- ----
------------- -- ----- -- --- - ----- - ------- ---
-----------------       -- --- --- -- ---- -- --

slice() 方法详解

slice() 方法的语法如下:

  • start: 必需。指定提取开始位置的索引。
  • end: 可选。指定提取结束位置的索引(不包括此索引的元素)。如果省略,则提取到数组末尾。

示例:

总结:

特性 splice() slice()
修改原数组
主要用途 删除、插入、替换元素 提取子数组
返回值 被删除元素组成的数组 提取出的新数组
纠错
反馈