Array.slice() 截取子数组

最后更新:2026-09-09

Array.slice() 截取子数组

slice 按起止下标截取一段浅拷贝新数组(含头不含尾),支持负数下标(从末尾倒数)。原数组完全不变,是数组不可变操作的基石。

分类数组
ES 版本ES3(1999)

📝 语法

const 新数组 = 数组.slice(起始下标, 结束下标);

⚙️ 参数

start可选。起始下标(含),负数从末尾倒数;省略默认 0。
end可选。结束下标(不含),负数从末尾倒数;省略默认到末尾。

返回值:浅拷贝的新数组。

是否修改原值:否(返回新值)

▶ 示例

编辑下方代码,点击运行,在输出面板查看结果:

运行结果:

[ '香蕉', '橙子' ]
[ '橙子', '葡萄', '西瓜' ]
[ '葡萄', '西瓜' ]
false
💡 提示 slice() 无参调用是复制数组的最简写法;浅拷贝意味着对象元素仍共享引用。
ℹ️ info slice 的负数下标规则同样适用于字符串的 slice——两个 API 行为一致,可以放心记忆。

🌐 浏览器支持

浏览器 ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
Array.slice() v1 v12 v1.5 v3 v10.5
所有现代浏览器均支持
更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Qslice 和 splice 怎么区分?
Aslice 截取不改原数组;splice 原地增删改。记忆:字母 p 的 splice 是 powerful(会改数据)。
Qslice(1, 3) 包含下标 3 吗?
A不包含——end 是开区间,只取下标 1 和 2。取到末尾省略 end 即可。
Qslice 是深拷贝吗?
A是浅拷贝:嵌套数组/对象仍共享引用。需要深拷贝用 structuredClone(arr)。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏