slice splice split 的区别?
1、slice(start,[end])
slice(start,[end])方法:该方法是对数组进行部分截取,该方法返回一个新数组
- 参数start是截取的开始数组索引,end参数等于你要取的最后一个字符的位置值加上1(可选)。
- 包含了源函数从start到 end 所指定的元素,但是不包括end元素,比如a.slice(0,3);
- 如果出现负数就把负数与长度相加后再划分。
- slice中的负数的绝对值若大于数组长度就会显示所有数组
- 若参数只有一个,并且参数大于length,则为空。
- 如果结束位置小于起始位置,则返回空数组,返回的个数是end-start的个数,不会改变原数组
<script>
var arr = [1,2,3,4,5,6]
console.log(arr.slice(3))//[4,5,6] 从下标为0的到3,截取3之后的数
console.log(arr.slice(0,3))//[1,2,3] 从下标为0的地方截取到下标为3之前的数
console.log(arr.slice(0,-2))//[1,2,3,4]
console.log(arr.slice(-4,4))//[3,4]
console.log(arr.slice(-7))//[1,2,3,4,5,6]
console.log(arr.slice(-3,-3))// []
console.log(arr.slice(8))//[]
</script>
小结:
- slice的参数如果是正数就从左往右数,如果是负数的话就从右往左边数,
- 截取的数组与数的方向一致,如果是2个参数则截取的是数的交集,没有交集则返回空数组
- slice也可以切割字符串,用法和数组一样,但要注意空格也算字符
2、splice(start,deletecount,item)
splice:移除,splice方法从array中移除一个或多个数组,并用新的item替换它们。
- start:起始位置
- deletecount:删除位数
- item:替换的item
- 返回值为被删除的字符串
- 如果有额外的参数,那么item会插入到被移除元素的位置上。
<script>
// var a=['a','b','c'];
// var b=a.splice(1,1,'e','f');
// console.log(a) //['a', 'e', 'f', 'c']
// console.log(b) //['b']
var a = [1, 2, 3, 4, 5, 6];
console.log("被删除的为:",a.splice(1, 1, 8, 9)); //被删除的为:2
console.log("a数组元素:",a); //1,8,9,3,4,5,6
console.log("被删除的为:", a.splice(0, 2)); //被删除的为:1,2
console.log("a数组元素:", a) //3,4,5,6
console.log("被删除的为:", a.splice(1, 0, 2, 2)) //插入 第二个数为0,表示删除0个
console.log("a数组元素:", a) //1,2,2,2,3,4,5,6
</script>
3、 split(字符串)
string.split(separator,limit):split方法把这个string分割成片段来创建一个字符串数组。
- 可选参数limit可以限制被分割的片段数量。
- separator参数可以是一个字符串或一个正则表达式。
- 如果separator是一个空字符,会返回一个单字符的数组,不会改变原数组。
var a="0123456";
var b=a.split("",3);
console.log(b);//b=["0","1","2"]
// 注意:String.split() 执行的操作与 Array.join 执行的操作是相反的。