1、slice( )
1.1 在js中slice是字符串和数组都可以用的方法吗?
是的,slice() 是 JavaScript 中常见的方法,可以用于数组和字符串。
对于字符串,slice() 方法返回一个新的字符串,其内容是从原字符串中提取出的一部分。例如:
const str = 'Hello, world!';
const slicedStr = str.slice(0, 5);
console.log(slicedStr); // 输出:'Hello'
对于数组,slice() 方法返回一个新的数组,其中包含原数组的一个子集,从指定的起始索引处开始,一直到、但不包括指定的终止索引处。例如:
const arr = [1, 2, 3, 4, 5];
const slicedArr = arr.slice(0, 2);
console.log(slicedArr); // 输出:[1, 2]
需要注意的是,对于数组来说,slice() 方法并不会修改原数组,而是返回一个新的数组。如果想要改变原数组,可以使用其他方法,例如 splice() 方法。
1.2 对数组和字符串使用时用法是基本一样的对吗?
是的,slice() 方法的使用方式在数组和字符串中基本相同。在两种情况下,该方法都接受两个参数:起始索引和终止索引。
对于字符串来说,起始索引指定从哪个位置开始提取字符串,终止索引指定提取的结束位置,但不包括终止索引处的字符。如果省略第二个参数,则 slice() 方法将提取从起始索引到字符串末尾的所有字符。如果某个参数为负数,则表示从字符串末尾开始计数。
对于数组来说,起始索引指定从哪个位置开始提取子数组,终止索引指定提取的结束位置,但不包括终止索引处的元素。如果省略第二个参数,则 slice() 方法将提取从起始索引到数组末尾的所有元素。如果某个参数为负数,则表示从数组末尾开始计数。
需要注意的是,虽然 slice() 方法的使用方式在两种情况下基本相同,但是对于字符串和数组,该方法返回的结果类型是不同的:对于字符串,slice() 方法返回一个新的字符串,而对于数组,该方法返回一个新的数组。
2、splice( )
JavaScript 中的 splice() 方法是用来修改数组的方法之一。它可以从数组中删除或添加元素,并返回被删除的元素数组。
splice() 方法的语法如下:
array.splice(start, deleteCount, item1, item2, ...)
参数说明:
- start:要删除或添加元素的起始位置索引。如果是负数,则从数组末尾开始计算。
- deleteCount:要删除的元素数量。如果设置为 0,则不会删除任何元素。
- item1, item2, …:要添加到数组中的元素。
splice() 方法的返回值是一个包含被删除元素的数组。如果没有删除任何元素,则返回一个空数组。
下面是一些 splice() 方法的例子:
const array = [1, 2, 3, 4, 5];
// 从第二个元素开始删除两个元素
const removed = array.splice(1, 2);
console.log(removed); // [2, 3]
console.log(array); // [1, 4, 5]
// 从第一个元素开始删除一个元素,并添加两个元素
array.splice(0, 1, 'a', 'b');
console.log(array); // ['a', 'b', 4, 5]
// 从第三个元素开始删除所有元素
array.splice(2);
console.log(array); // ['a', 'b']
在第一个例子中,splice() 方法从索引 1 开始删除两个元素(2 和 3),并将被删除的元素返回为一个新数组。原始数组变成了 [1, 4, 5]。
在第二个例子中,splice() 方法从索引 0 开始删除一个元素,并添加了两个新元素(‘a’ 和 ‘b’)。原始数组变成了 `[‘a’, ‘b’, 4, 5]'。
在第三个例子中,splice() 方法从索引 2 开始删除所有元素,并将原始数组截断到长度为 2。结果为 [‘a’, ‘b’]。
需要注意的是,splice() 方法会直接修改原始数组,因此需要谨慎使用。同时,由于该方法可以对数组进行复杂的修改操作,因此建议在使用时仔细阅读文档并测试代码,以确保达到预期的结果。