slice()
slice
不会修改原数组,只会返回一个浅复制了原数组中的元素的一个新数组。
语法:
arr.slice([begin[, end]])
参数:
begin : (可选)
提取起始处的索引(从 0
开始),从该索引开始提取原数组元素。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取,slice(-2)
表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。如果省略 begin
,则 slice
从索引 0
开始。如果 begin
超出原数组的索引范围,则会返回空数组。
end:(可选)
提取终止处的索引(从 0
开始),在该索引处结束提取原数组元素。slice
会提取原数组中索引从 begin
到 end
的所有元素(包含 begin
,但不包含 end
)。如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 如果 end
被省略,则 slice
会一直提取到原数组末尾。如果 end
大于数组的长度,slice
也会一直提取到原数组末尾。
返回值:
一个含有被提取元素的新数组。
示例:
截取数组
const arr = [1, 2, 3, 4, 5]
console.log(arr.slice(2, 4))
截取字符串
let str = '今天天气不错,就是还要排队做核酸'
// 1、最后一个字符不要
console.log(str.slice(0, -1))
// 2、想要中间的 气(开始索引,结束索引)
console.log(str.slice(3, 4))
// 3、从第几个索引开始截,一直截到最后
console.log(str.slice(7))
<!-- 今天天气不错,就是还要排队做核
气
就是还要排队做核酸 -->
substring()
substring
提取从 indexStart
到 indexEnd
(不包括)之间的字符。
语法:
str.substring(indexStart[, indexEnd])
参数:
indexStart
需要截取的第一个字符的索引,该索引位置的字符作为返回的字符串的首字母。
indexEnd
可选。一个 0 到字符串长度之间的整数,以该数字为索引的字符不包含在截取的字符串内
参数具体描述:
- 如果
indexStart
等于indexEnd
,substring
返回一个空字符串。 - 如果省略
indexEnd
,substring
提取字符一直到字符串末尾。 - 如果任一参数小于 0 或为 NaN,则被当作 0。
- 如果任一参数大于
stringName.length
,则被当作stringName.length
。
示例:
var anyString = "Mozilla";
// 输出 "Moz"
console.log(anyString.substring(0,3));
console.log(anyString.substring(3,0));
console.log(anyString.substring(3,-3));
console.log(anyString.substring(3,NaN));
console.log(anyString.substring(-2,3));
console.log(anyString.substring(NaN,3));
// 输出 "lla"
console.log(anyString.substring(4,7));
console.log(anyString.substring(7,4));
// 输出 ""
console.log(anyString.substring(4,4));
// 输出 "Mozill"
console.log(anyString.substring(0,6));
// 输出 "Mozilla"
console.log(anyString.substring(0,7));
console.log(anyString.substring(0,10));