JS中slice,splice,split的区别
1. slice :
定义:接收一个或两个参数,它可以创建一个由当前数组中的一项或多项组成的新数组,注意是新数组,也就是说它不会修改原来数组的值。
用法:
(1)array1.slice(index1),会截取从下标为index1开始的到原数组最后的部分作为新的数组;
(2)array1.slice(index1, index2)会截取原数组的从index1下标开始的index2-index1个元素组成新的数组。
注意:当两个参数中存在负数时,用原数组的长度加上两个负数的参数作为相应的参数来计算。
2. splice :
定义:强大的数组操作方法
用法 :
(1)array1.splice(index1):删除数组array1中的从下标为index1到数组最后的项。
(2) array1.splice( index1,index2 ) : 删除数组array1中任意数量的项,从下标为index1开始的index2个数组元素。
(3) array1.splice(index1,index2,val1,val2…):向数组array1中添加和删除项,index1表示开始操作的数组下标位置,index2表示要删除的项数,后面的变量表示要添加的项的值,注意是从下标为index1的位置开始删除和添加的。
注意 :
(1) 参数为负数的问题,如果index1为负数,则会加上数组的长度作为index1的值,而index2为负数或0的话不会执行删除操作。
(2)返回值为删除的项组成的新数组。
(3)用splice删除数组中的值会直接将某几项从数组中完全删除,会导致数组length值的改变,这与delete的删除置为undefined是不一样的。
3.split :
定义:
根据特定的字符切割字符串并且返回生成的数组。
用法:
string1.split(char1)
将字符串string1按字符char1进行分割,并组成新的数组返回。
示例 :
var str ="h-ell-o-w-o-r-l-d";
var newArray =str.split("-"); // ["h", "ell","o","w", "o", "r", "l","d"]