slice这个方法可以用到数组或者字符串上,简单地说一下它的用法。
用在字符串上
let str = 'apple'
格式:slice(start,end)
如果只有一位,从1索引为1的位置开始截取
let a1 = str.slice(1) //3456
console.log(a1);
截取的结果为pple。注意开始,是从索引为1的位置开始截取那就包含索引1,截取后面的所有字符。
如果是两位
let a1 = str.slice(1, 3)
console.log(a1);
从索引为1的为止开始到索引为3结束,此时还没有到3,应该在3的前一位。
所以截取的结果为:索引为1和索引为2。
图:
用在数组上
截取橘子后面的水果,包含橘子
let arr = ['苹果', '橘子', '西瓜', '哈密瓜']
// 截取橘子后面的水果,包含橘子
let newArr = arr.slice(1)
console.log(newArr);
只截取橘子和西瓜
橘子的所以为1
西瓜的索引为2
如果这样写
let arr = ['苹果', '橘子', '西瓜', '哈密瓜']
// 截取橘子后面的水果,包含橘子
let newArr = arr.slice(1, 2)
console.log(newArr);
结果:
只有一个橘子,与我们想要的是不一样的。
可以这样理解从索引1打索引2,包含了索引1,没有到索引2。
正确的写法:
let arr = ['苹果', '橘子', '西瓜', '哈密瓜']
// 截取橘子后面的水果,包含橘子
let newArr = arr.slice(1, 3)
console.log(newArr);
从索引1到索引3 ,中间有索引2,但不包含索引3。
总结
遇到截取方面的问题,大家有时候不知道截取的位置是在哪里。
例如截取索引为1后面的全部字符,它是包含索引1的。
例如截取一个区间(1,3),截取1到3的字符,它是不包含索引为3的。
最后八字总结:
开始算上
尾部不上
写的不好,希望对大家有所帮助啊。