JS数组方法shift()、unshift()用法实例分析
本文实例讲述了JS数组方法shift()、unshift()用法。分享给大家供大家参考,具体如下:
shift()方法
1.定义:从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
2.语法:arr.shift()
3.参数:/
4.返回值:从数组中删除的元素(当数组为空时返回undefined)。
代码如下:
方法一:
vararr1=[1,2,3,4,'A','B','C']; vararr2=[]; Array.prototype.copyShift=function(){ varresult=[], newArr=[]; result=this[0]; for(vari=1;i运行结果:
方法二:将上述代码修改为如下:(去掉中间数组newArr,直接在原数组上操作)
vararr1=[1,2,3,4,'A','B','C']; vararr2=[]; Array.prototype.copyShift=function(){ varresult=[]; result=this[0]; /* for(vari=1;i1){//去掉数组最后一项 this.length=this.length-1; } returnresult; }; console.log(arr1.copyShift());//1 console.log(arr1);//[2,3,4,'A','B'] console.log(arr2.copyShift());//undefined console.log(arr2);//[] 运行结果:
unshift()方法
1.定义:将一个或多个元素添加到数组的开头,并返回新数组的长度。
2.语法:arr.unshift(element1,...,elementN)
3.参数:数组前端添加任意个项
4.返回值:当一个对象调用该方法时,返回其length属性值。代码如下:
方法一:
vararr1=[1,2,3,4,'A','B','C']; vararr2=[1,2,3,4]; Array.prototype.copyUnshift=function(){ varnewArr=[], argLen=arguments.length, len=argLen+this.length; for(vari=0;i运行结果:
//同方法一一样,只不过是for循环以递减的形式 vararr1=[1,2,3,4,'A','B','C']; vararr2=[1,2,3,4]; Array.prototype.copyUnshift=function(){ varnewArr=[], argLen=arguments.length, len=argLen+this.length; //同方法一一样,只不过是for循环以递减的形式 for(vari=len-1;i>=0;i--){ /*if(i接上递减形式的for循环,进一步可修改为:
方法二:直接修改原数组,不借助中间数组
vararr1=[1,2,3,4,'A','B','C']; vararr2=[1,2,3,4]; Array.prototype.copyUnshift=function(){ varargLen=arguments.length, len=argLen+this.length; for(vari=len-1;i>=0;i--){ /*if(i>argLen-1){ this[i]=this[i-argLen]; } else{ this[i]=arguments[i]; } */ this[i]=(i>argLen-1)?this[i-argLen]:arguments[i]; } returnlen; }; console.log(arr1.copyUnshift('XXX','YYY','ZZZ'));//10 console.log(arr1);//['XXX','YYY','ZZZ',1,2,3,4,'A','B'] console.log(arr2.copyUnshift());//4 console.log(arr2);//[1,2,3,4]运行结果:
感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript遍历算法与技巧总结》、《javascript面向对象入门教程》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。