JavaScript數組 - 棧和隊列方法

2021-01-11 web分享

棧方法

為了實現棧這個結構存在的方法

什麼叫棧?

棧是古代的木盆,相當於現在的洗衣機;從同一個口進並且從同一個口出

如果要洗衣服拿出最底面的衣服必須要先拿出上面的衣服才可以

棧方法也是一樣,先進後出

1.push();

格式:數組.push( 若干元素 );

功能:給數組末尾添加元素

參數:我們要添加的參數,參數的個數隨意

舉個小例子:

運行結果如下

從這可以看看出push();將元素添加到了末尾

然後我們來看push它的一個返回值,

res運行的返回值為他所添加完之後的數組的個數

以上是push( ); 方法

2.pop();

格式:數組.pop();

功能:移除數組末尾的最後一個元素

返回值:移除的元素

舉個小例子:

運行結果首先取下開的是綠巨人

再顯示數組還有點額元素鋼鐵俠和蟻人

push是從數組的末尾插入;而pop方法是從數組的末尾取出。

隊列方法

1.push(); shift();

隊列結構與棧結構不同,從一頭進,從另外一頭出,先進先出。

其中進要使用push(); 方法,出就需要shift(); 方法

格式:數組.shift();

功能:從數組的頭部去下一個元素

返回值:取下的元素

舉個小例子:

運行效果如下

通過從push(); 數組的尾部去插入,從shift(); 數組的頭部取下元素,就可以完成隊列結構。

2.unshift();

格式:數組.unshift( 若干參數 );

功能:從數組的頭部插入元素

參數:我們插入數組的元素,個數隨意

返回值:插入元素以後,數組的長度

舉個小例子:

運行結果,arr運行出是數組添加後的元素

res運行出是插入元素後元素的個數

- End -

---web分享,分享的不只是web

相關焦點

  • JS 數據結構與算法——棧 & 隊列
    數據結構意味著接口或封裝:一個數據結構可被視為兩個函數之間的接口,或者是由數據類型聯合組成的存儲內容的訪問方法封裝我們每天的編碼中都會用到數據結構,因為數組是最簡單的內存數據結構,下面是常見的數據結構:數組(Array)棧(Stack)隊列(Queue)鍊表(Linked List)樹(Tree)圖(Graph)堆(Heap)散列表(Hash)下面來學習學習棧和隊列。
  • 結合JAVA詳解鍊表、棧、隊列等數據結構
    因為要移動、複製數組,很麻煩鍊表 在上面我們已經說過了,任何的數據類型都可以通過最基本的數組和指針構造。因為需要全盤遍歷棧 Stack堆還是按照數組為基礎實現的,只不過它是一個半開的數組,怎麼理解這個半開的數組呢,如圖,就好像一個瓶子一樣,往裡面丟元素,先進後出原則入棧 push將一個元素加入的棧裡面
  • 圖解堆算法、鍊表、棧與隊列
    它通常被看作一棵樹的數組對象。在隊列中,調度程序反覆提取隊列中的第一個作業並運行,因為實際情況中某些時間較短的任務卻可能需要等待很長時間才能開始執行,或者某些不短小、但很重要的作業,同樣應當擁有優先權。而堆就是為了解決此類問題而設計的數據結構。
  • JavaScript 數組操作函數總結
    這裡總結到的 js 數組操作函數有:push,pop,join,shift,unshift,slice,splice,concat(1)push 和 pop這兩個函數都是對數組從尾部進行壓入或彈出操作。push(arg1,arg2,...)可以每次壓入一個或多個元素,並返回更新後的數組長度。
  • JavaScript:學會splice()數組操作
    如果不知道Array.prototype.splice的使用的方法那很有可能就要被扣分了。使用javascript數組類型內置的splice方法僅需一行代碼即可輕鬆實現對數組元素進行插入、刪除、替換操作。
  • 每日一課 | JavaScript中的數組
    JavaScript中的數組具有length屬性,該屬性返回該數組的大小。如何檢索數組中的第一個和最後一個元素? document.write("First Element -- " + array[0] + "<br/>");document.write("Last Element -- " + array[array.length - 1] + "<br/>");在JavaScript中聲明數組的不同方法
  • JavaScript 基礎:「21」使用 push()和pop()方法操作數組
    歡迎關注路條編程網站,本專題主要介紹 JavaScript 基本語法、注釋、變量聲名、各種運算符、字符串、數組及條件語句等。
  • 如何在 JavaScript 中等分數組
    在開發中,了解 JavaScript 和 Promise 基礎,有助於提高我們的編碼技能,今天,我們一起來看看下面的 10 片段,相信看完這 10 個片段有助於我們對 Promise 的理解。在本教程中,我們來學習一下如何使用Array.splice()方法將數組等分,還會講一下,Array.splice() 和 Array.slice() 它們之間的不同之處。1.
  • Java實現單鍊表、棧、隊列三種數據結構
    它裡面的數據元素是以結點為單位,每個結點是由數據元素的數據和下一個結點的地址組成,在java集合框架裡面  LinkedList、HashMap(數組加鍊表)等等的底層都是用鍊表實現的。3、棧裡面的主要操作有:peek(返回棧頂元素):將棧頂元素的數據返回相當於只有一個開口就是尾部,只能從尾進,從尾出。
  • 有趣的JavaScript原生數組函數
    數組對象繼承自Object.prototype,對操作符返回的數組類型返回對象而不是array。然而,[]實例,數組也返回true。變量,類數組對象的實現更複雜,例如字符串對象,參數對象,參數對象不是數組的實例,但有長度屬性,並能通過索引取值,所以能像多個相同進行循環操作。在這裡,我將複習一些複製原型的方法,並探索這些方法的用法。
  • 15個必須知道的JavaScript數組方法
    原文 | https://www.ibrahima-ndaw.com/blog/15-must-known-javascript-array-methods-in
  • 棧和隊列的區別是啥?那些有關程式設計師的笑話
    2、一個程式設計師要了三個孩子,起個什麼名字好呢,最後名字定下來了,分別叫Ctrl,Alt和Delete。3、殺一個程式設計師不需要用槍,改三次需求就可以了。這不得不讓我想起需求方一而再,再而三的改需求,你們有什麼好的辦法嗎?
  • 有關樹遍歷的javascript實現【前端-總結-leetcode算法題】
    在這裡插入圖片描述前言二月的第一天,總結一下近段時間刷的有關樹遍歷的leetcode算法題,希望寫完這篇文章的我和看完文章的你都有些收穫吧。全篇主要講的是有關樹的遍歷,使用前端javascript語言實現。當然有關樹的操作還有很多需要的深入理解和總結的。今天就暫時先把樹遍歷理解全吧。
  • LeetCode專項刷題順序:棧
    在刷題順序的整理中,我主要遵循了如下規則:在題目分組方面,除綜合題外,每組題目的技巧、方法均相似,方便統一學習;在各組題目的順序方面,總體來說為由易到難,後一組題目比前一組略難一些,方便大家循序漸進;在每組題目的順序方面,均為由易到難(難度為我依據自己的理解,對LeetCode給出的難度進行微調的結果),方便大家循序漸進。
  • JavaScript中原生Array數組方法詳解
    arguments對象不是數組的實例,但仍然有length屬性,值也可以被索引,因此也可以像一張一樣被循環遍歷。這篇文章中,我將盤點下定義在Array原型上的一些常用的方法,並逐一介紹其用法。1.forEach()forEach對數組的所有成員依次執行且只執行一次參數函數,參數函數包含以下3個參數:進一步,可以傳遞一個可選參數用作指定函數裡的這個。
  • java基礎容器學習之雙端隊列ArrayDeque
    引言:ArrayDeque,被稱為「雙端隊列」,可以從兩端進行插入或刪除操作,當需要使用棧時,Java已不推薦使用Stack,而是推薦使用更高效的ArrayDeque,當需要使用隊列時也可以使用ArrayDeque。
  • JavaScript 數組中 Slice 和 Splice 的區別(含視頻)
    這篇文章的標題或許應該是「怎麼才能不混淆 JavaScript 數組中的 Slice 方法和 Splice 方法」,因為我自己總是記不住這兩者的區別。其實可以從這個方法的名字看出來,它是用於從一個 JavaScript 數組中提取元素。不過和切蛋糕不同,從數組中提取元素不會影響原數組,原數組根本就不會變化(像是切不完的蛋糕!)
  • 每天一個IDA小技巧(三):全局、棧和堆分配的數組和結構體
    其次,使用可變索引值將帶領我們來到數組的開頭,因為在計算要訪問的數組元素的具體地址時,我們需要用數組的基址加上相應的偏移量,這時基址即呈現出來,並且通過觀察與索引相乘的數可以知道數組中元素的大小。棧中分配的數組如果數組是作為棧變量分配的,似乎編譯器在編譯時無法獲得絕對地址,而且即使是使用常量索引的訪問也必須在運行時進行某種計算。
  • 在JavaScript中,使用replace()、test()和exec()方法匹配字符串
    exec()方法返回的是一個Array類型數組:運行後的結果如下:圖3在圖3中,返回的一個使用[]中括號組成的數組對象,匹配到的值是「a」,索引位置是0。表示匹配成功了。這3個修飾符的含義和使用方法如下所述。6.1. /g修飾符和match()方法/g修飾符,表示執行全局匹配,並不是所有與正則表達式相關的函數都支持全局匹配。
  • 走進C語言:堆、棧與堆區、棧區,你知道有什麼區別嗎?
    一、區別 註:首先堆和棧可以分為兩種,一種是數據結構,另一種是和內存的分配有關,這兩種雖然都有棧和堆,但是兩者關係並不大, 1、棧、堆是數據結構裡面的叫法,注意:有時候有人喜歡這樣說 「堆棧」 其實說的就是棧而不是堆。