slice, splice字面意思理解

在 JavaScript 中,slicesplice 是两个与数组操作相关的方法,它们的名字来源于英语单词,具有直观的字面意思。理解它们的字面含义可以帮助你更好地记住它们的功能和区别。下面我从字面意思出发,结合功能进行解释。


1. slice

字面意思

  • 英文slice 的意思是“切片”或“薄片”。
  • 形象理解:像用刀从一大块食物(如面包、蛋糕)上切下一片薄薄的部分,但不影响原来的整体结构。
  • 引申:提取一部分,保留原始对象完整。

在 JavaScript 中的功能

  • 作用:从数组中“切”出一段子数组,返回一个新数组,原数组保持不变。
  • 特点:非破坏性(non-destructive),只“取走”一份副本。
  • 类比:就像从一整块蛋糕上切下一片,原蛋糕还是完整的。

示例

  • 理解:从索引 13(不含 3)“切”出一片,得到 ["banana", "orange"]

2. splice

字面意思

  • 英文splice 的意思是“拼接”或“接合”,但在实际使用中,它更常指“剪接”或“插入”(尤其在生物学或电影剪辑中,如基因拼接、胶片剪接)。
  • 形象理解:像用剪刀把一段绳子或胶片剪掉,然后可能在剪掉的地方接上其他东西。关键是这个过程会改变原始结构。
  • 引申:移除一部分,并可能插入新内容,原始对象会被修改。

在 JavaScript 中的功能

  • 作用:从数组中“剪”掉一部分(移除元素),并可以选择在剪掉的位置“拼接”上新元素,原数组会被修改。
  • 特点:破坏性(destructive),直接改变原数组,返回被移除的元素。
  • 类比:就像从一段绳子上剪掉一部分,然后可能接上新的绳子,原绳子变了。

示例

  • 理解
  • 从索引 1 开始,剪掉 2 个元素("banana", "orange")。
  • 在剪掉的位置拼接上 "kiwi", "mango"
  • 原数组被改变。

字面意思对比

方法字面意思形象类比JS 中的行为
slice切片从蛋糕切下一片,原蛋糕不变提取子数组,原数组不变
splice剪接/拼接剪掉绳子一段,可接上新段移除元素并可插入,原数组变

记忆技巧

  • slice(切片)
  • “Slice of pizza”:切下一片披萨,原披萨还在,只是少了一片。
  • 联想:只是“拿走”一份,不动原物。
  • splice(剪接)
  • “Splice a film”:剪掉胶片一段,再接上新的,原始胶片变了。
  • 联想:动刀“剪掉”并“拼接”,原物被改造。

扩展:语法对比

  1. slice(start, end)
  • 只取,不改。
  • 示例:arr.slice(1, 3) → 取 [1][2] 的元素。
  1. splice(start, deleteCount, ...items)
  • 剪掉并可选拼接。
  • 示例:arr.splice(1, 2, "x") → 从 [1] 开始删 2 个,插入 "x"

总结

splice:字面是“剪接”,功能是“剪掉并拼接”,修改原数组。

slice:字面是“切片”,功能是“取出一片”,不破坏原数组。