js中的slice与splice区别是什么

在JavaScript中,slice()splice()是数组的两种常用方法,它们有不同的功能和用法。

  1. slice(start, end)
    • slice()方法用于从一个数组中提取(截取)指定位置的元素,然后返回一个新的数组,原始数组保持不变。
    • 它接受两个参数:startendstart表示开始截取的位置(包括该位置),end表示结束截取的位置(不包括该位置)。
    • 如果省略end参数,则会截取从start位置到数组末尾的所有元素。
    • slice()方法不会修改原始数组,而是返回一个从原始数组中截取的新数组。

示例:

let fruits = ['apple', 'banana', 'orange', 'mango', 'kiwi'];

let slicedFruits = fruits.slice(1, 3);
console.log(slicedFruits); // 输出: ['banana', 'orange']

// 原始数组不受影响
console.log(fruits); // 输出: ['apple', 'banana', 'orange', 'mango', 'kiwi']
  1. splice(start, deleteCount, item1, item2, ...)
    • splice()方法用于从数组中删除、替换或插入元素,同时修改原始数组,并返回被删除的元素组成的新数组。
    • 它接受至少一个参数start,表示开始修改的位置。
    • 可选参数deleteCount表示要删除的元素数量,如果省略或为0,则不删除任何元素。
    • 可选参数item1, item2, ...表示要插入到数组中的新元素。
    • splice()方法会修改原始数组,并返回一个由被删除元素组成的新数组。

示例:

let fruits = ['apple', 'banana', 'orange', 'mango', 'kiwi'];

let deletedFruits = fruits.splice(1, 2, 'pear', 'grape');
console.log(fruits); // 输出: ['apple', 'pear', 'grape', 'mango', 'kiwi']
console.log(deletedFruits); // 输出: ['banana', 'orange']

// 删除元素
fruits.splice(2, 1);
console.log(fruits); // 输出: ['apple', 'pear', 'mango', 'kiwi']

// 插入元素
fruits.splice(1, 0, 'pineapple');
console.log(fruits); // 输出: ['apple', 'pineapple', 'pear', 'mango', 'kiwi']

总结:

  • slice()方法是从数组中提取子数组,并返回一个新数组,不改变原始数组。
  • splice()方法则用于对数组进行修改,可以删除、替换和插入元素,并返回被删除的元素组成的新数组。

【AD】DMIT优惠码 – 美国洛杉矶CN2 GIA VPS配置升级季付28美元起