使用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>
测试结果(只测试替换功能,其余自行测试):