splice、slice 和 split 是 JavaScript 中数组(或类似数组对象)和字符串对象上常用的方法,但它们各自有不同的用途和返回值。
- splice() (数组方法):
splice() 方法用于添加/删除数组中的项目,然后返回被删除的项目。这个方法会改变原始数组。
语法:
array.splice(index, deleteCount, item1, ..., itemX)
- index(必需): 开始更改的位置。如果为负值,表示从数组尾部开始算起的位置。
- deleteCount(必需): 要删除的元素数量。如果设置为 0,则不会删除项目。
- item1, ..., itemX(可选): 要添加到数组中的新元素,从 index 所指的位置开始。如果不指定,则 splice() 只删除数组元素。
示例:
let fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");
// fruits 现在为 ["Banana", "Orange", "Lemon", "Kiwi", "Apple", "Mango"]
- slice() (数组/类数组对象方法):
slice() 方法返回一个新的数组对象,这一对象是一个由开始到结束(不包括结束)选择的、由原数组的浅拷贝构成。原始数组不会被改变。
语法:
array.slice(begin, end)
- begin(可选): 提取起始处的索引(从 0 开始),从该索引开始提取原数组元素。如果该参数为负数,则表示从末尾开始算起的索引(即,-1 指最后一个元素,-2 指倒数第二个元素,以此类推)。
- end(可选): 提取结束处的索引(从 0 开始),在该索引处停止提取原数组元素。slice() 会提取到该索引(不包括)之前的元素。如果该参数为负数,则它表示在原数组中的倒数。slice(-2) 表示提取了原数组的倒数第二个元素到最后一个元素(包含最后一个元素)。如果该参数省略,slice() 会一直提取到数组末尾。
示例:
let fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
let citrus = fruits.slice(1, 3);
// citrus 现在为 ["Orange", "Lemon"]
- split() (字符串方法):
split() 方法用于把一个字符串分割成字符串数组。
语法:
str.split([separator[, limit]])
- separator(可选): 指定分隔符,可以是字符串或正则表达式。如果省略,则返回整个字符串的数组。
- limit(可选): 一个整数,限定返回的分割片段数量。
示例:
let str = "Hello,World,How,Are,You";
let arr = str.split(",");
// arr 现在为 ["Hello", "World", "How", "Are", "You"]