js中slice(),splice(),split(),substring(),substr()的使用方法和区别

时间:2024-01-19 21:22:26

1.slice();

Array和String对象都有

在Array中  slice(i,[j])

i为开始截取的索引值,负数代表从末尾算起的索引值,-1为倒数第一个元素
j为结束的索引值,缺省时则获取从i到末尾的所有元素

参数返回:
返回索引值从i到j的数组,原数组不改变

在String中 slice(i,[j])

参数说明:
i为开始截取的索引值,负数代表从末尾算起的索引值,-1为倒数第一个字符
j为结束的索引值,缺省时则获取从i到末尾的所有字符

2.splice()

存在Array中     方法向/从数组中添加/删除项目,然后返回被删除的项目。 该方法会改变原始数组

splice(index,howmany,item1,itemx )

index : 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

howmany: 必需。要删除的项目数量。如果设置为 0,则不会删除项目。

item1...itemX : 可选。向数组添加的新项目。

返回值  Array  包含被删除项目的新数组,如果有的话。

3.split()

在String中 split(separator,howmany)

separator:必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。

howmany: 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

返回值

一个字符串数组。该数组是通过在separator指定的边界处将字符串StringObject分割成子串创建的。返回的数组的字符串不包含separator自身

但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)

与jion()函数相反效果

4.substring()

在String中  substring(start,stop)

start:表示子字符串的开始位置,

stop:表示结束结果。

注意:第二个参数应该大于第一个参数。如果出现第一个参数大于第二个参数的情况,substring方法会自动更换两个参数的位置。

5.substr()

在String中,substr(start,length);

start:子字符串的开始位置,

length:子字符串的长度。

不知道大家对slice,splice,splite是肿么样的感觉,反正我刚接触到这三个函数的时候整个人都懵了,因为一个个长的跟孪生兄弟似的,每次用的时候都会混,于是决定记下来,也给大家当个参考吧。

  1. slice  :

    定义:接收一个或两个参数,它可以创建一个由当前数组中的一项或多项组成的新数组,注意是新数组哦~ 也就是说它不会修改原来数组的值。

     用法:slice( para1 ),会截取从para1开始的到原数组最后的部分;

        slice(para1,para2)会截取原数组的从para1开始的para2-para1个数组。

     注意:当两个参数中存在负数时,用原数组的长度加上两个负数的参数作为相应的参数来计算。

  2.  splice  :

    定义:强大的数组操作方法

用法 : splice( para1,para2 ) : 删除数组中任意数量的项,从para1开始的para2项。注意的是用splice删除数组中的值会直接将某几项从数组中完全删除,会导致数组length值的改变,这与delete的删除置为undefined是不一样的。

splice( para1,para2,val1,val2… ):项数组中添加和删除项,para1表示可以添加的项数,para2表示删除的项数,后面的变量表示要添加的项的值,注 意是从para1之后开始删除和添加的。

    注意 : 参数为负数的问题,如果para1为负数,则会加上数组的长度作为para1的值,而para2为负数或0的话不会执行删除操作。

  3.split : 根据特定的字符切割字符串并且返回生成的数组。

例如 : str = “s-aaa-sss-eee-www”;

targetArr = str.slite(“-”);    //[‘s’,’aaa’,’sss’,’eee’,’www’]

  现在看看其实这三位长相相近的函数都是与数组有关的,不过各自的功能还是有很大差异的~有了它们就方便我们的数组操作了。