JavaScript數(shù)組的棧方法與隊列方法詳解
數(shù)組(Array)和對象(Object)應該是JavaScript中使用最多也是最頻繁的兩種類型了,Array提供了很多常用的方法:棧方法、隊列方法、重排序方法、操作方法、位置方法、迭代方法等等。
1、Array的棧方法
棧是一種LIFO(Last-In-First-Out,后進先出)的數(shù)據(jù)結構,也就是最新添加的項最早被移除。棧中項的插入(push)和移除,只發(fā)生在一個位置——棧的頂部。ECMAScript為數(shù)組提供了push()和pop()方法,可以實現(xiàn)類似棧的行為。下面兩圖分別演示了入棧與出棧操作。
push()方法可以接收任意數(shù)據(jù)的參數(shù),把它們逐個添加到數(shù)組末尾,并返回修改后的數(shù)組長度。pop()方法從數(shù)組末尾移除最后一項,減少數(shù)組的length值
var students = []; students.push("bluce","jordan","marlon","kobe");//入棧4項 alert(students.length); //4 alert(students[0]); //"bluce",第一項在棧的底部 alert(students[1]); //"jordan" students.push("paul"); alert(students.length); //5 var item = students.pop(); //"paul" alert(students.length); //4
2、Array的隊列方法
棧數(shù)據(jù)結構的訪問規(guī)則是LIFO(后進先出),而隊列數(shù)據(jù)結構的訪問規(guī)則是FIFO(First-In-First-Out,先進先出)。隊列在列表的末端添加項,從列表的前端移除項。push()方法是向數(shù)組末端添加項的方法,因此要模擬隊列只需一個從數(shù)組前端取得項的方法——shift(),其能夠移除數(shù)組中的第一個項并返回該項,同時數(shù)組的length-1。結合使用shift()和push()方法,可以像使用隊列一樣使用數(shù)組。
var students = []; students.push("bluce","jordan","marlon","kobe");//入隊4項 //students=["bluce","jordan","marlon","kobe"]; alert(students.length); //4 alert(students[0]); //"bluce",第一項在棧的底部 alert(students[1]); //"jordan" students.push("paul"); alert(students.length); //5 //students=["bluce","jordan","marlon","kobe","paul"]; var item = students.shift(); //"bluce" alert(students.length); //4 //students=["jordan","marlon","kobe","paul"];
此外,ECMAScript還提供了unshift()方法,它能在數(shù)組前端添加任意個項并返回新數(shù)組的長度。因此,結合使用unshift()和pop()方法,可以從相反的方向來模擬隊列,即在數(shù)組的前端添加項,從數(shù)組末端移除項
- 深入JavaScript高級程序設計之對象、數(shù)組(棧方法,隊列方法,重排序方法,迭代方法)
- JavaScript數(shù)據(jù)結構與算法之棧與隊列
- JS實現(xiàn)隊列與堆棧的方法
- JavaScript數(shù)組實現(xiàn)數(shù)據(jù)結構中的隊列與堆棧
- JavaScript數(shù)據(jù)結構學習之數(shù)組、棧與隊列
- JS實現(xiàn)利用兩個隊列表示一個棧的方法
- JavaScript棧和隊列相關操作與實現(xiàn)方法詳解
- JavaScript基于數(shù)組實現(xiàn)的棧與隊列操作示例
- 如何使用JavaScript實現(xiàn)棧與隊列
- JavaScript中棧和隊列應用詳情
相關文章
原生js實現(xiàn)網(wǎng)頁頂部自動下拉/收縮廣告效果
本文主要介紹了原生js實現(xiàn)網(wǎng)頁頂部自動下拉/收縮廣告效果的實例代碼。具有一定的參考價值,下面跟著小編一起來看下吧2017-01-01JS庫之Particles.js中文開發(fā)手冊及參數(shù)詳解
因為自己需要做產(chǎn)品,所以一個好的UI界面也是很重要的,發(fā)現(xiàn)這種散射的原子顆粒特效還不錯。今天腳本之家小編把Particles.js中文開發(fā)手冊及particles.js參數(shù)分享給大家,需要的朋友參考下吧2017-09-09