splice和slice的用法

slice() 方法:

特点

  1. 不会改变原始数组!!
  2. 返回从原数组中提取的元素组成的新数组
  3. 浅拷贝

语法

array.slice(start, end)
  • start:指定从哪个索引开始提取元素。如果省略,则从索引 0 开始提取。如果是负数,则表示从末尾开始计算的位置。
  • end可选参数,指定在哪个索引处结束提取元素(但不包括该索引处的元素)。如果省略,则提取到数组的末尾。如果是负数,则表示从末尾开始计算的位置。

用法示例:

const array = [1, 2, 3, 4, 5];
const slicedArray = array.slice(1, 4); // 从索引 1 开始提取,到索引 4(不包括)结束
console.log(slicedArray); // 输出: [2, 3, 4]

const array = [1, 2, 3, 4, 5];
const slicedArray = array.slice(); // 从索引 0 开始提取,到末尾结束
console.log(slicedArray); // 输出: [1, 2, 3, 4, 5]

const array = [1, 2, 3, 4, 5];
const slicedArray = array.slice(-1); // 从索引 最后一个元素 开始提取,到末尾结束
console.log(slicedArray); // 输出: [5]

const array = [1, 2, 3, 4, 5];
const slicedArray = array.slice(-4, -1);
console.log(slicedArray); // 输出: [2, 3, 4]

splice() 方法:

特点

  1. 会修改原数组
  2. 返回被删除的元素
  3. 可以实现删除、新增、修改元素
    语法:
array.splice(start, deleteCount, item1, item2, ...)
  • start:指定修改数组的起始位置,即从哪个索引开始添加或删除元素。
  • deleteCount:可选参数,指定要删除的元素个数。 如果省略,则删除从 start 索引开始到数组末尾的所有元素
  • item1, item2, ...:可选参数,要添加到数组的新元素。

用法示例:

const array = [1, 2, 3, 4, 5];
// 从索引 2 开始删除 1 个元素,并插入 'a' 和 'b'
console.log(array.splice(2, 1, "a", "b")); //输出:3 
console.log(array); // 输出: [1, 2, 'a', 'b', 4, 5]

const array = [1, 2, 3, 4, 5];
 // 从索引 0 开始,删除 0个 元素,插入2.5
 console.log(array.splice(2, 0, 2.5));  // 输出:[]
console.log(array); // 1, 2, 2.5, 3, 4, 5]

const array = [1, 2, 3, 4, 5];
// 从索引 0 开始删除 所有 元素
console.log(array.splice(0)); // 输出:[1, 2, 3, 4, 5]
console.log(array); // 输出: []

const array = [1, 2, 3, 4, 5];
array.splice(0, 0); // 从索引 0 开始删除 0个 元素
console.log(array); // 输出: [1, 2, 3, 4, 5]

总的来说,slice() 用于提取数组中的一部分,而不会改变原数组,而 splice() 用于修改数组,可以删除元素、插入新元素或同时做这两件事。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值