1、push()、pop()和unshift()、shift()
这两组同为对数组的操作,并且会改变数组的本身的长度及内容。
不同的是 push()、pop() 是从数组的尾部进行增减,unshift()、shift() 是从数组的头部进行增减。
var arr = [1, 2];
2、push()和unshift()
向数组的 尾部/头部 添加若干元素,并返回 数组的 新长度;
arr.push(3,4); //返回 arr 的新长度 4
arr ; // arr = [1,2,3,4];
arr.unshift(0,0.5); // 返回 arr 的新长度 6
arr ; // arr = [0,0.5,1,2,3,4];
3、pop()和shift()
从数组的 尾部/头部 删除1个元素(删且只删除1个),并返回 被删除的元素;空数组是继续删除,不报错,但返回undefined;
arr.pop(); //返回 4;
arr ; // arr = [0,0.5,1,2,3];
arr.pop(); //返回 3;
arr ; // arr = [0,0.5,1,2];
arr.shift(); // 返回 0 ;
arr ; // arr = [0.5,1,2]
PS: pop()和shift() 不接受传参,即使传了参数也没什么卵用~~;
arr.pop(3) ; // 返回 2;永远返回最后一个;
arr ; // arr = [0.5,1];
arr.shift(1); // 返回 0.5; 永远返回第一个;
arr ; // arr = [1];
arr.pop() ; // 返回 1;
arr ; // arr = [];
arr.shift() // 返回 undefined;
arr ; // arr = [];
在学习js的过程中,碰到这样一个问题:
var colors=new Array();
var count=colors.unshift("red","green"); //推入多个项
count=colors.unshift("black"); //推入单个项
var item=colors.pop(); //移除
alert(item); //''green''
我的问题是:为什么移除的是 green而不是red 呢?本人仔细又回去看了一下数据结构,了解下面概念就不难理解了;
1、push()是用来在数组末端添加项,shift()在移除数组的第一个项(前端);
2、pop()在数组末端移除项,unshift()在数组前端添加项;
3、push(),unshift()在推入多个项时,各个项之间的顺序不变
4、push(),unshift()将数组的长度+1并返回的是数组的长度,pop(),shift()将数组length-1并返回的是移除的项
例如:
var num=new Array();
num.push("1","2","3"); //推入项 数组呈现为①②③
console.log(num.shift());//移除①项,数组呈现为②③
num.unshift(''4''); //在前端添加项,数组呈现为④②③
num.push("5"); //在末端添加项,数组呈现为④②③⑤
console.log(num.shift());//移除数组的第一个项,验证得到④
num.unshift("6","7","8"); //注意这里,以及下一句 数组呈现为⑥⑦⑧②③⑤
num.push("9","10"); //数组呈现为⑥⑦⑧②③⑤⑨⑩
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛