JS 数组方法 slice 和 splice 的区别

本文介绍了JavaScript中的数组方法slice和splice,分别用于提取数组部分元素且不改变原数组,以及在数组中添加和删除元素并返回被删除元素。通过物联网设备数据缓存示例,展示了它们在实际场景中的运用。
摘要由CSDN通过智能技术生成
1. slice

概述

slice 方法用于提取数组中的一部分,返回提取结果,不会改变原数组

语法

 
  1. array.slice(start, end)
  2. start 起始位置 end 可选参数,结束位置
  3. 返回值: 起始位置到结束位置之间的数据,包含起始位置,但是不包含结束位置
  4. 当位置的值为负数时,代表从倒数第几个元素开始提取,如: -1 代表倒数第一个元素

实例

 
  1. const arr = ['what', 'are', 'you', 'doing', '?']
  2. // ['are', 'you']
  3. const res1 = arr.slice(1, 3)
  4. // ['are', 'you', 'doing']
  5. const res2 = arr.slice(1, -1)
2. splice

语法

 
  1. array.splice(index, howmany[, item1, item2, ...])
  2. index 起始位置,从何处开始
  3. howmany 删除的元素数量,为 0 时不会删除任何元素
  4. item1, item2, .. 可选参数,要添加到数组中的新项目
  5. 返回值:被删除元素构建的新数组,没有删除时返回空数组
  6. 当位置的值为负数时,代表从倒数第几个元素开始提取,如: -1 代表倒数第一个元素

实例

 
  1. const arr = ['what', 'are', 'you', 'doing', '?']
  2. // ['are', 'you', 'doing']
  3. const delArr = arr.splice(1, 3)
  4. // ['what', '?']
  5. console.log(arr);
 
  1. const arr = ['what', 'are', 'you', 'doing', '?']
  2. // []
  3. const delArr = arr.splice(1, 0, 'ok', 'name')
  4. // ['what', 'ok', 'name', 'are', 'you', 'doing', '?']
  5. console.log(arr);
 
  1. const arr = ['what', 'are', 'you', 'doing', '?']
  2. // ['you']
  3. const delArr = arr.splice(2, 1, 'ok')
  4. // ['what', 'are', 'ok', 'doing', '?']
  5. console.log(arr);

应用场景

现有物联网设备每隔一段时间会向APP发送一些数据,APP需要将数据临时保存起来,等待特定时机将这些数据一次性发送给服务端,保存这些数据时如果有相同的id,则后面的数据覆盖前面的数据

 
  1. // 缓存变量
  2. const data = []
  3. setInterval(() => {
  4. // 生成 1~5 之间的整数
  5. const id = Math.round(Math.random() * 4 + 1)
  6. const score = Math.round(Math.random() * 100)
  7. // 要存入缓存变量中的数据
  8. const user = { id, score }
  9. // 存入缓存变量
  10. const index = data.findIndex(item => item.id == id)
  11. index === -1 ? data.push(user) : data.splice(index, 1, user);
  12. // 查看数据
  13. console.log(user);
  14. console.log(data);
  15. }, 3000)
3. slice 和 splice 区别

slice() 方法用于从数组中选取元素,返回值是选取的元素,并且不会改变原数组

splice() 方法用于在数组中添加和删除元素,返回值是被删除的元素,会改变原数组

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaScript中的数组有两个常用的方法slicesplice。 1. slice 方法slice 方法是用于从数组中提取指定范围的元素,然后返回一个新的数组。它接受两个参数,即开始索引和结束索引(不包括结束索引本身),如果省略结束索引,则会一直提取到数组末尾。原始数组不会被修改。 示例: ```javascript const fruits = ['apple', 'banana', 'orange', 'grape', 'kiwi']; const slicedFruits = fruits.slice(1, 4); // 从索引 1 到 4(不包括 4)提取元素 console.log(slicedFruits); // 输出:['banana', 'orange', 'grape'] const slicedFruits2 = fruits.slice(2); // 从索引 2 开始提取元素到数组末尾 console.log(slicedFruits2); // 输出:['orange', 'grape', 'kiwi'] console.log(fruits); // 输出原始数组,不受 slice 方法影响:['apple', 'banana', 'orange', 'grape', 'kiwi'] ``` 2. splice 方法splice 方法用于修改原始数组,它可以用于删除、插入或替换数组中的元素。它接受三个或更多参数,第一个参数是开始索引,第二个参数是需要删除的元素个数,之后的参数是要插入到数组的新元素(可选)。splice 方法会返回一个包含被删除元素的数组。 示例: ```javascript const fruits = ['apple', 'banana', 'orange', 'grape', 'kiwi']; const deletedFruits = fruits.splice(2, 2); // 从索引 2 开始删除 2 个元素 console.log(deletedFruits); // 输出:['orange', 'grape'] console.log(fruits); // 输出被修改后的数组:['apple', 'banana', 'kiwi'] fruits.splice(1, 0, 'pear', 'melon'); // 从索引 1 开始插入新元素 console.log(fruits); // 输出被修改后的数组:['apple', 'pear', 'melon', 'banana', 'kiwi'] fruits.splice(4, 1, 'mango'); // 从索引 4 开始替换一个元素 console.log(fruits); // 输出被修改后的数组:['apple', 'pear', 'melon', 'banana', 'mango'] ``` 希望这些示例能够帮助你理解 slicesplice 方法的用法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超酷的站长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值