广州总部电话:020-85564311
广州总部电话:020-85564311
20年
互联网应用服务商
请输入搜索关键词
知识库 知识库

优网知识库

探索行业前沿,共享知识宝库

JavaScript 数组方法 slice

发布日期:2025-08-25 08:59:32 浏览次数: 806 来源:bonly全干创想
推荐语
JavaScript数组的slice方法就像一把精准的手术刀,不伤原物却能轻松切出你需要的部分。

核心内容:
1. slice方法的基本语法与使用示例
2. slice的三大特性:不改变原数组、支持负数索引、可用于浅拷贝
3. slice在获取最后几个元素和分页功能中的实战应用
小优 网站建设顾问
专业来源于二十年的积累,用心让我们做到更好!

🎯 开篇:为什么 slice 方法总是让人又爱又恨?

想象一下,你正在切蛋糕:

  • 用 slice 切下一块 → 蛋糕还在,你得到了一块

  • 用其他方法切 → 可能把蛋糕弄坏了

JavaScript 的 slice() 方法就像一把"温柔的手术刀",切得精准,不伤原物!

🔍 核心问题:slice 到底怎么用?

基本语法:array.slice(startIndex, endIndex)

constfruits= ['🍎''🍌''🍊''🍇''🍉']

// 基础用法
fruits.slice(13)    // ['🍌', '🍊']
fruits.slice(2)       // ['🍊', '🍇', '🍉']
fruits.slice(-3)      // ['🍊', '🍇', '🍉']
fruits.slice(-3-1)  // ['🍊', '🍇']

🎨 图解:slice 方法的工作原理


💡 slice 的三大神奇特性

1. 不改变原数组

constnumbers= [12345]
constsliced=numbers.slice(13)

console.log(sliced)    // [2, 3]
console.log(numbers)   // [1, 2, 3, 4, 5] - 原数组没变!

2. 支持负数索引

constletters= ['A''B''C''D''E']

letters.slice(-3)      // ['C', 'D', 'E'] - 最后3个
letters.slice(-3-1)  // ['C', 'D'] - 倒数第3个到倒数第2个
letters.slice(-1)      // ['E'] - 最后一个

3. 可以用于数组浅拷贝

constoriginal= [123]
constcopy=original.slice()  // 浅拷贝

console.log(copy)      // [1, 2, 3]
console.log(copy===original)  // false - 不是同一个数组

🚀 实战应用场景

1. 获取数组最后几个元素

constmessages= ['消息1''消息2''消息3''消息4''消息5']

// 获取最后3条消息
constlastThree=messages.slice(-3)
console.log(lastThree)  // ['消息3', '消息4', '消息5']

2. 分页功能实现

functiongetPageData(datapagepageSize) {
  conststart= (page-1*pageSize
  constend=start+pageSize
  returndata.slice(startend)
}

constallData= [12345678910]
constpage1=getPageData(allData13)  // [1, 2, 3]
constpage2=getPageData(allData23)  // [4, 5, 6]

3. 数组去重(配合 Set)

constnumbers= [12233455]
constunique= [...newSet(numbers)]
// 或者
constunique2=Array.from(newSet(numbers))

⚠️ 常见陷阱与解决方案

陷阱1:混淆 slice 和 splice

constarr1= [12345]
constarr2= [12345]

// slice - 不改变原数组
arr1.slice(13)  // 返回 [2, 3],arr1 还是 [1, 2, 3, 4, 5]

// splice - 改变原数组
arr2.splice(13)  // 返回 [2, 3, 4],arr2 变成 [1, 5]

陷阱2:负数索引的理解

constarr= ['A''B''C''D']

// 负数索引从右往左数
arr.slice(-2)      // ['C', 'D'] - 最后2个
arr.slice(-2-1)  // ['C'] - 倒数第2个到倒数第1个(不含)

🎯 总结:记住这个口诀

"slice 温柔不伤原,负数索引从右数,浅拷贝用 slice()"

🧪 小测验

constcolors= ['红''橙''黄''绿''蓝''紫']

// 问题1:获取中间3个颜色
colors.slice(14)  // ['橙', '黄', '绿']

// 问题2:获取最后2个颜色
colors.slice(-2)    // ['蓝', '紫']

// 问题3:获取除了第一个和最后一个的所有颜色
colors.slice(1-1// ['橙', '黄', '绿', '蓝']

优网科技,优秀企业首选的互联网供应服务商

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!

优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、微信小程序定制开发、移动端应用(手机站APP开发)、微信定制开发(微信官网、微信商城、企业微信)等一系列互联网应用服务。


我要投稿

姓名

文章链接

提交即表示你已阅读并同意《个人信息保护声明》

专属顾问 专属顾问
扫码咨询您的优网专属顾问!
专属顾问
马上咨询
扫一扫马上咨询
扫一扫马上咨询

扫一扫马上咨询