zoukankan      html  css  js  c++  java
  • 使用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>

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

  • 相关阅读:
    【bzoj2820】GCD
    【learning】莫比乌斯反演
    【bzoj2151】种树
    【noip模拟】局部最小值
    【learning】多项式乘法&fft
    【learning】二分图最大匹配的König定理
    【noip模拟】2048
    【noip模拟】修长城
    【noip模拟】最小点覆盖
    【noip模拟】Fantasia
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/8629285.html
Copyright © 2011-2022 走看看