成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript數(shù)組常見的22種方法總結(jié)

DesGemini / 401人閱讀

摘要:創(chuàng)建數(shù)組的基本方式有兩種。為數(shù)組專門提供了和方法,以便實現(xiàn)類似棧的行為。反轉(zhuǎn)數(shù)組,按升序排列數(shù)組項即最小的值位于最前面。例如,會刪除數(shù)組中的前兩項。對數(shù)組中的每一項運行給定函數(shù),返回該函數(shù)會返回的項組成的數(shù)組。

===什么是數(shù)組===

數(shù)組是數(shù)據(jù)的有序列表
創(chuàng)建數(shù)組的基本方式有兩種。
第一種是使用 Array 構(gòu)造函數(shù):var colors = new Array();
創(chuàng)建數(shù)組的第二種基本方式是使用數(shù)組字面量表示法:var colors = ["red", "blue", "green"];

===檢測數(shù)組的方法===

1》通過instanceof來判斷:value instanceof Array;
2》通過Array.isArray()方法來判斷;

===數(shù)組的方法===

一共總結(jié)數(shù)組常見的 22 種方法!
其中 7 種會改變原數(shù)組值:push()、pop()、shift()、unshift()、reverse()、sort()、splice()
15 種不會改變原數(shù)組的值:toString()、toLocaleSting()、valueOf()、join()、concat()、slice()、indexOf()、lastIndexOf()、every()、filter()、forEach()、map()、some()、reduce()、reduceRight()

1.轉(zhuǎn)換方法(toString、toLocaleSting、valueOf()、join)(不會修改原數(shù)組!)

所有對象都會有toString、toLocaleSting、valueOf()方法。
toString、toLocaleSting方法會將數(shù)組轉(zhuǎn)換成以逗號(,)分割的字符串。
join()接收一個參數(shù),將數(shù)組轉(zhuǎn)換為字符串,并以這個參數(shù)作分割。

2.棧方法 (修改原數(shù)組!)

棧是一種 LIFO(Last-In-First-Out,后進先出)的數(shù)據(jù)結(jié)構(gòu),也就是最新添加的項最早被移除。而棧中項的插入(叫做推入)和移除(叫做彈出),只發(fā)生在一個位置——(棧的頂部)。ECMAScript 為數(shù)組專門提供了 push()和 pop()方法,以便實現(xiàn)類似棧的行為。
因為是棧后進先出,而且推入/彈出都是發(fā)生在棧的頂部。因此數(shù)組的尾部實際是存放在棧的頂部,所以push()(后增方法)添加在數(shù)組尾部,就是添加在棧的頂部。pop方法刪除數(shù)組尾部一位數(shù)據(jù)也就是在棧頂部刪除最新數(shù)據(jù),滿足后入先出去。

3.隊列方法(修改原數(shù)組!)

隊列數(shù)據(jù)結(jié)構(gòu)的訪問規(guī)則是 FIFO(First-In-First-Out, 先進先出)。隊列在列表的末端添加項,從列表的前端移除項。
結(jié)合使用 shift()和 push()方法,可以像使用隊列一樣使用數(shù)組。

因為隊列是先進先出,所以數(shù)組的尾部就對應(yīng)著隊列末端,所以通過push方法在數(shù)組尾部添加數(shù)據(jù)就是在隊列末端添加。在使用shift方法在數(shù)組頂部移除一位數(shù)據(jù)就是在隊列前端移除。

ECMAScript 還為數(shù)組提供了一個 unshift()方法。顧名思義,unshift()與 shift()的用途相反: 它能在數(shù)組前端添加任意個項并返回新數(shù)組的長度。因此,同時使用 unshift()和 pop()方法,可以從相反的方向來模擬隊列,即在數(shù)組的前端添加項,從數(shù)組末端移除項。

4.重新排序方法 (修改原數(shù)組!)

數(shù)組中已經(jīng)存在兩個可以直接用來重排序的方法:reverse()和 sort()。
reverse反轉(zhuǎn)數(shù)組,sort按升序排列數(shù)組項——即最小的值位于最前面。sort()方法會調(diào)用每個數(shù)組項的 toString()轉(zhuǎn)型方法,然后比較得到的字符串(javascript字符串在進行大于(小于)比較時,會根據(jù)第一個不同的字符的ascii值碼進行比較,當數(shù)字(number)與字符串(string)進行比較大小時,會強制的將數(shù)字(number)轉(zhuǎn)換成字符串(string)然后再進行比較),以確定如何排序。

sort()方法可以接收一個比較函數(shù)作為參數(shù),以便我們指定哪個值位于哪個值的前面。比較函數(shù)接收兩個參數(shù),如果第一個參數(shù)應(yīng)該位于第二個之前則返回一個負數(shù),如果兩個參數(shù)相等 則返回 0,如果第一個參數(shù)應(yīng)該位于第二個之后則返回一個正數(shù)。

5.操作方法

concat (不修改原數(shù)組!):先創(chuàng)建當前數(shù)組一個副本,然后將接收到的參數(shù) 添加到這個副本的末尾,最后返回新構(gòu)建的數(shù)組。在沒有給 concat()方法傳遞參數(shù)的情況下,它只是 復制當前數(shù)組并返回副本。如果傳遞給 concat()方法的是一或多個數(shù)組,則該方法會將這些數(shù)組中的每一項都添加到結(jié)果數(shù)組中。

slice() (不修改原數(shù)組!): 基于當前數(shù)組中的一或多個項創(chuàng)建一個新數(shù)組。slice()方法可以 接受一或兩個參數(shù),即要返回項的起始結(jié)束位置。在只有一個參數(shù)的情況下,slice()方法返回從該參數(shù)指定位置開始到當前數(shù)組末尾的所有項。如果有兩個參數(shù),該方法返回起始結(jié)束位置之間的項,但不包括結(jié)束位置的項

起始值大于結(jié)束值:返回【】;
負數(shù)則加上數(shù)組長度來確定坐標slice(-2,-1) === slice(1,2);

splice (修改原數(shù)組!): 有很多種用法:
刪除:可以刪除任意數(shù)量的項,只需指定 2 個參數(shù):要刪除的第一項的位置和要刪除的項數(shù)。 例如,splice(0,2)會刪除數(shù)組中的前兩項。

插入:可以向指定位置插入任意數(shù)量的項,只需提供 3 個參數(shù):起始位置、要刪除的項數(shù)(0)要插入的項。如果要插入多個項,可以再傳入第四、第五,以至任意多個項。例如, splice(2,0,"red","green")會從當前數(shù)組的位置 2 開始插入字符串"red"和"green"。

替換:可以向指定位置插入任意數(shù)量的項,且同時刪除任意數(shù)量的項,只需指定 3 個參數(shù):起始位置、要刪除的項數(shù)要插入的任意數(shù)量的項。插入的項數(shù)不必與刪除的項數(shù)相等。例如, splice (2,1,"red","green")會刪除當前數(shù)組位置2的項,然后再從位置2開始插入字符串"red"和"green"

6.位置方法 (不修改原數(shù)組!)

indexOf()lastIndexOf()。這兩個方法都接收兩個參數(shù):要查找的項和(可選的)起點位置的索引。其中,indexOf()方法從數(shù)組的開頭(位置0)開始向后查找,lastIndexOf()方法則從數(shù)組的末尾開始向前查找。內(nèi)部使用===進行比較。

7.迭代方法 (不修改原數(shù)組!)

ECMAScript5為數(shù)組定義了5個迭代方法。每個方法都接收兩個參數(shù):要運行的函數(shù)、運行該函數(shù)的作用域?qū)ο?/strong>(可選的)(影響 this 的值)。
傳入這些方法中的函數(shù)會接收三個參數(shù):數(shù)組項的值該項在數(shù)組中的位置數(shù)組對象本身。根據(jù)使用的方法不同,這個函數(shù)執(zhí)行后的返回值可能會也可能不會影響方法的返回值。
every():對數(shù)組中的每一項運行給定函數(shù),如果該函數(shù)對每一項都返回 true,則返回 true。 filter():對數(shù)組中的每一項運行給定函數(shù),返回該函數(shù)會返回 true 的項組成的數(shù)組。
forEach():對數(shù)組中的每一項運行給定函數(shù)。這個方法沒有返回值。
map():對數(shù)組中的每一項運行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。
some():對數(shù)組中的每一項運行給定函數(shù),如果該函數(shù)對任一項返回 true,則返回 true。

8.歸并方法(不修改原數(shù)組!)

reduce()reduceRight()。這兩個方法都會迭代數(shù)組的所有項,然后構(gòu)建一個最終返回的值。其中,reduce()方法從數(shù)組的第一項開始,逐個遍歷到最后。而reduceRight()相反。
接收兩個參數(shù):要調(diào)用的函數(shù)、作為歸并基礎(chǔ)的初始值(可選)
函數(shù)接收4個參數(shù):前一個值、當前值、項的索引數(shù)組對象。這個函數(shù)返回的任何值都會作為第一個參數(shù)自動傳給下一項。第一次迭代發(fā)生在數(shù)組的第二項上,因此第 一個參數(shù)是數(shù)組的第一項,第二個參數(shù)就是數(shù)組的第二項。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105323.html

相關(guān)文章

  • 前端面試題總結(jié)(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進,適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    li21 評論0 收藏0
  • 前端面試題總結(jié)(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進,適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    AaronYuan 評論0 收藏0
  • JavaScript數(shù)據(jù)結(jié)構(gòu)和算法

    摘要:棧被稱為一種后入先出的數(shù)據(jù)結(jié)構(gòu)。散列使用的數(shù)據(jù)結(jié)構(gòu)叫做散列表。這些操作需要求助于其他數(shù)據(jù)結(jié)構(gòu),比如下面介紹的二叉查找樹。 前言 在過去的幾年中,得益于Node.js的興起,JavaScript越來越廣泛地用于服務(wù)器端編程。鑒于JavaScript語言已經(jīng)走出了瀏覽器,程序員發(fā)現(xiàn)他們需要更多傳統(tǒng)語言(比如C++和Java)提供的工具。這些工具包括傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)(如鏈表,棧,隊列,圖等),...

    EastWoodYang 評論0 收藏0
  • 前端面試題總結(jié)(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進,適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    pumpkin9 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<