slice
是 JavaScript 中的一个方法,用于从数组或字符串中提取一部分元素或字符,并返回一个新的数组或字符串,而不会改变原始数据。
在数组上的使用
let arr = [1, 2, 3, 4, 5, 6];
let new_arr1 = arr.slice(1, 4); // 提取索引1到3的元素(不包括索引3)
console.log(new_arr1); // 输出:[2, 3, 4]
-
start
是必需的,表示从哪个位置开始提取。 -
end
是可选的,表示提取的结束位置(不包括该位置的元素)。 -
如果
start
或end
超出数组范围,则函数将使用数组长度或0
。 -
如果只提供一个参数,则
end
默认设置为数组长度。
在字符串上的使用
let str = "Hello World!";
let result1 = str.slice(6); // 从位置6开始提取,返回"World!"
let result2 = str.slice(0, 5); // 从位置0到位置5之间提取,返回"Hello"
console.log(result1); // 输出:World!
console.log(result2); // 输出:Hello
-
start
是必需的,表示从哪个位置开始提取。 -
end
是可选的,表示提取的结束位置(不包括该位置的字符)。 -
如果
start
为负数,则表示从字符串的末尾开始计算。 -
如果
end
为负数,则表示从字符串的末尾开始计算。 -
如果省略
end
,则提取从start
到字符串的末尾的所有字符。
负数索引
-
当
start
或end
为负数时,它们表示从数组或字符串的末尾开始计算位置。 -
-1
指最后一个字符,-2
指倒数第二个字符,依此类推。
示例
let str = "Hello happy world!";
let str1 = str.slice(-2); // 从字符串的倒数第二个字符开始提取
console.log(str1); // 输出:world!
总结
slice
方法可以用于数组和字符串,它创建了一个新的数组或字符串,包含从 start
到 end
指定的元素或字符,start
和 end
都可以为负数。返回的新数组或字符串不会影响原始数据