slice,splice,split,unshift的用法

工作了很久始终对这三个用法处于混淆状态,今天写个帖子来警示下自己

//            slice(index,length),从第index值截取length个元素组成新的数组,不改变原数组
//            slice(index)从index下标值开始截取,组成新的数组不改变原数组
            var arr=[0,1,2,3,4,5,6];
            var a=arr.slice(0,4);//01234
            var b=arr.slice(3);//3456
            console.log(a);//01234
            console.log(b);//3456
            console.log(arr);//0123456
//            当传入一个数值且为负数时length会与这个数值相加然后再截取,当该数值的绝对值大于length时会返回全部
//            当传入的值是一正一负时,此时的length不再是arr的length而是新数组的length,此时length同样与负数相加,再截取值
//            当传入的值时一正一副且第二个值的绝对值大于或等于length的个数则返回空数组
            var c=arr.slice(-5);
            console.log(c);//23456
            var d=arr.slice(-8);
            console.log(d)//0123456
            var e=arr.slice(2,-2);
            console.log(e);//234
            var f=arr.slice(2,-5);
            console.log(f);//空值
            var arr1=[0,1,2,3,4,5,6];
//            splice(index,length,item1,item2)从第index开始选择length个元素进行删除,item1,item2放入删除的位置
//            改变了原数组使原数组一目前的方法进行排列,操作过后的值为删除掉的值
            var g=arr1.splice(2,2,8,8);
            console.log(g)//23
            console.log(arr1);//0188456
//            split(separator,limit) 不改变原数组组成新的字符串,以separator分割字符串对目前字符串取limit个组成新的数组
            var str="abc丰城市123";
            var h=str.split("市",2);
            console.log(h);
            console.log(str);
            var arr2=[0,1,2];
//            unshift(item1,item2,...),unshift向原数组开头进行追加元素,改变原数组
            var i=arr2.unshift(3,4,"丰城市");
            console.log(i);//6 得到的是数组arr2新追加后的length
            console.log(arr2);//原数组已改变,改变为新追加后的数组

猜你喜欢

转载自www.cnblogs.com/iwen1992/p/10863009.html