美文网首页
JS中slice,splice,split的区别

JS中slice,splice,split的区别

作者: 追逐繁星的阿忠 | 来源:发表于2018-12-14 14:10 被阅读14次

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

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

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

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

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

    //如果不传入参数二,那么将从参数一的索引位置开始截取,一直到数组尾
    var a=[1,2,3,4,5,6];
    var b=a.slice(0,3);    //[1,2,3]
    var c=a.slice(3);       //[4,5,6]
    
    //如果两个参数中的任何一个是负数,array.length会和它们相加,试图让它们成为非负数,举例说明:
    //当只传入一个参数,且是负数时,length会与参数相加,然后再截取
    var a=[1,2,3,4,5,6];
    var b=a.slice(-1);    //[6]
    
    //当只传入一个参数,是负数时,并且参数的绝对值大于数组length时,会截取整个数组
    var a=[1,2,3,4,5,6];
    var b=a.slice(-6);    //[1,2,3,4,5,6]
    var c=a.slice(-8);    //[1,2,3,4,5,6]
    
    //当传入两个参数一正一负时,length也会先于负数相加后,再截取
    var a=[1,2,3,4,5,6];
    var b=a.slice(2,-3);    //[3]
    
    //当传入一个参数,大于length时,将返回一个空数组
    var a=[1,2,3,4,5,6];
    var b=a.slice(6);  //[]
    

    用法:string.slice(start,end)

    解释:slice方法复制string的一部分来构造一个新的字符串,用法与参数匀和数组的slice方法一样;end参数等于你要取的最后一个字符的位置值加上1

    //举个简单的例子
    var a="i am a boy";
    var b=a.slice(0,6);    //"i am a"
    

    2. splice :

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

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

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

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

    //举一个简单的例子
    var a=['a','b','c'];
    var b=a.splice(1,1,'e','f');    //a=['a','e','f','c'],b=['b']
    

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

                   例如 : str = “s-aaa-sss-eee-www”;
    
                            targetArr = str.slite(“-”);    //[‘s’,’aaa’,’sss’,’eee’,’www’]
    
    //再举一个简单的例子
    var a="0123456";
    var b=a.split("",3);    //b=["0","1","2"]
    

    原文地址:https://www.cnblogs.com/mangoWeb/p/3517801.html

    原文地址:http://www.cnblogs.com/webjoker/p/5218114.html

    相关文章

      网友评论

          本文标题:JS中slice,splice,split的区别

          本文链接:https://www.haomeiwen.com/subject/othghqtx.html