您现在的位置: 365建站网 > 365学习 > js/javascrip/jst队列方法push()、shift()与pop()、unshift()的解释

js/javascrip/jst队列方法push()、shift()与pop()、unshift()的解释

文章来源:365jz.com     点击数:388    更新时间:2017-12-14 19:36   参与评论
JavaScript push() 方法

定义和用法
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
语法
arrayObject.push(newelement1,newelement2,....,newelementX)
参数 描述
newelement1 必需。要添加到数组的第一个元素。
newelement2 可选。要添加到数组的第二个元素。
newelementX 可选。可添加多个元素。
返回值
把指定的值添加到数组后的新长度。
说明
push() 方法可把它的参数顺序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。
提示和注释
注释:该方法会改变数组的长度。
提示:要想数组的开头添加一个或多个元素,请使用 unshift() 方法。

JavaScript shift() 方法

定义和用法
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
语法
arrayObject.shift()
返回值
数组原来的第一个元素的值。
说明
如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。
提示和注释
注释:该方法会改变数组的长度。
提示:要删除并返回数组的最后一个元素,请使用 pop() 方法。

JavaScript pop() 方法

定义和用法
pop() 方法用于删除并返回数组的最后一个元素。
语法
arrayObject.pop()
返回值
arrayObject 的最后一个元素。
说明
pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。

JavaScript unshift() 方法

定义和用法
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
语法
arrayObject.unshift(newelement1,newelement2,....,newelementX)
参数 描述
newelement1 必需。向数组添加的第一个元素。
newelement2 可选。向数组添加的第二个元素。
newelementX 可选。可添加若干个元素。
返回值
arrayObject 的新长度。
说明
unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。
请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组。
提示和注释
注释:该方法会改变数组的长度。
注释:unshift() 方法无法在 Internet Explorer 中正确地工作!
提示:要把一个或多个元素添加到数组的尾部,请使用 push() 方法。

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");   //数组呈现为⑥⑦⑧②③⑤⑨⑩

 

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (388人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------