Array.slice()是JavaScript中用于安全提取数组片段的内置方法,不修改原数组,返回含指定区间元素的新数组;语法为array.slice(start, end),start和end支持正负索引,省略时默认为0或数组末尾。

Array.slice() 是 JavaScript 中用于安全提取数组片段的内置方法,它不会修改原数组,而是返回一个包含指定区间元素的新数组(浅拷贝)。
基本语法与参数含义
array.slice(start, end)
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
-
start:起始索引(含),从 0 开始计数;支持负数(如
-1表示倒数第一个);若省略,默认为0 - end:结束索引(不含),即截取到该位置前一个元素;也支持负数;若省略,默认截取到末尾
- 若
start ≥ end(或两者相等),返回空数组[]
常见使用场景与示例
假设原数组为:const arr = ['a', 'b', 'c', 'd', 'e'];
- 取前三个元素:
arr.slice(0, 3)→['a', 'b', 'c'] - 取最后两个元素:
arr.slice(-2)→['d', 'e'] - 从第 2 个元素到倒数第 2 个(不含):
arr.slice(1, -1)→['b', 'c', 'd'] - 复制整个数组:
arr.slice()或arr.slice(0)→['a', 'b', 'c', 'd', 'e']
注意边界与特殊情况
- 索引超出范围时自动修正:如
arr.slice(10, 20)在长度为 5 的数组上返回[] -
start或end为NaN、undefined时,会被转为0(例如slice(undefined, 2)等价于slice(0, 2)) - 对稀疏数组保持稀疏性:
[1, , 3].slice(0, 2)返回[1, empty](不是[1, undefined])
与 Array.splice() 的关键区别
-
slice()不改变原数组,只读取并返回副本 -
splice()会直接修改原数组(增删改),且返回被删除的元素数组 - 需要“不破坏原数据”时,优先用
slice();需要“就地操作”时才考虑splice()
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










