Javascript数组中栈和队列方法

Javascript数组中栈和队列方法

数组中栈方法    ——  push()、pop()

栈是一种LIFO(Last-In-First-Out,后进先出)的数据结构,也就是最新添加的项最早被移除。而栈中项的插入(叫做推入,push)和移除(叫做弹出,pop),只发生在一个位置,即栈的顶部。ECMAScript为数组专门提供了push()和pop()的方法,以便实现类似栈的行为。

push()方法可以接收任意数量的参数,把他们逐个添加到数组的末尾,并返回修改后数组的长度。而pop()方法则从数组末尾移除最后一项,数组的lenrth值减1,然后返回移除的项.请看下面的例子:

push()的返回值

var colors = ["red","green","pink"];                                        //起初三项
var count = colors.push("orange","yellow");                      //添加两项
console.log(count);                                                                        //输出改变后数组的长度5

pop()的返回值

var colors = ["red","green","pink"];                                        //起初三项
var count = colors.push("orange","yellow");                      //添加两项
var item = colors.pop();                    
console.log(colors.length);                                                         //数组长度为4
console.log(item);                                                                          //“yellow"

数组中队列方法    ——  shift()、unshift()

队列数据结构的访问规则是FIFO(First-In-First-Out,先进先出)。队列在列表的末端添加项,从列表的前端移除项。由于push()是向数组末端添加项的方法,因此模拟队列只需一个从数组前端取得项的方法。实现这一操作的方法就是shift(),它能够移除数组中的第一项并返回该项,同时将数组的长度减1。结合使用shift()和push()方法,可以像用队列一样使用数组。

var colors = ["red","green","pink"];                                        //起初三项
var item = colors.shift();                    
console.log(colors.length);                                                         //返回数组长度2
console.log(item);                                                                          //“red"

ECMAScript还为数组提供了一个unshift()方法,顾名思义,unshift()和shift()的用途相反:它能在数组的前端添加任意个项并返回新数组的长度。

var colors = ["red","green","pink"];                                        //起初三项
var item = colors.unshift("orange");                    
console.log(colors.length);                                                         //返回数组长度4
console.log(item);                                                                          //与上一行代码相同,返回数组长度4

引自:《Javascript 高级程序设计 第3版》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值