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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。