使用js实现splice方法

splice无疑是最强大的数组方法,出于兴趣,现在使用js来实现splice方法,实现之前必须了解splice方法的功能是怎么样的

功能需求:删除,插入,替换,而这三个功能是通过改变函数参数来实现的

两个参数情况(删除):第一个参数表示要删除项的索引,第二个参数表示要删除的项数,

三个以上包括三个参数情况(插入和替换):第一参数表示起始位置,第二个参数表示要删除的项数(该项为0的话为插入,大于0的话为替换),第三个及以后的参数表示要插入的项。

实现思路描述:要理解js函数中的参数的概念,参数在内部是用一个数组来表示的,在函数体内是通过arguments对象来访问参数数组的。所以可以通过arguments来实现此方法。

实现代码:

<script type="text/javascript">
        var arr=[1,2,3,4,5,6,7,8,9];
    //使用js实现splice方法,写的比较粗糙,对参数判断不够细腻
    function jsSplice(){
        var index=arguments[0];
        var num=arguments[1];
        var len=arguments.length;
        var result=[],content=[];
        //删除
        if(len==2){
            result=arr.slice(0,index).concat(arr.slice(index+num,arr.length));
console.log(result)
        }else if(len>2){
            for(var i=2;i<len;i++){
                content.push(arguments[i]);
            }
            //插入
            if(num==0){
                result=arr.slice(0,index).concat(content,arr.slice(index,arr.length));
                console.log(result);
            //替换
            }else if(num>0){
                result=arr.slice(0,index).concat(content,arr.slice(index+num,arr.length));
                console.log(result);
            }

        //参数个数不对,返回原数组
        }else{
            console.log(arr)
        }
        //删除第二项
    //jsSplice(1,1);
    //在数组第二项插入两项100,200
    //jsSplice(1,0,100,200);
    //把数组第二项替换为三项值为:1000,2000,3000
    jsSplice(1,1,1000,2000,3000);
    }

    
</script>

测试结果(只测试替换功能,其余自行测试):

 

posted @ 2018-03-23 11:25  mingL  阅读(4539)  评论(0编辑  收藏  举报