有趣的JavaScript原生數(shù)組函數(shù)

Array對(duì)象的一些基本信息

查找.indexOf

arr.indexOf(elem),
我們實(shí)際中可能會(huì)寫(xiě) a=='a' || a=='b' || a=='c',現(xiàn)在可以這么寫(xiě)。
['a','b','c'].indexOf(a)

循環(huán) forEach

every 和 some

some將會(huì)給數(shù)組里的每一個(gè)元素執(zhí)行一遍回調(diào)函數(shù),直到有一個(gè)回調(diào)函數(shù)返回true為止。如果找到目標(biāo)元素,some立即返回true,否則some返回false。回調(diào)函數(shù)只對(duì)已經(jīng)指定值的數(shù)組索引執(zhí)行;它不會(huì)對(duì)已刪除的或未指定值的元素執(zhí)行。

join 和 concat

.join(分隔符)方法創(chuàng)建一個(gè)字符串,會(huì)將數(shù)組里面每個(gè)元素用分隔符連接。如果沒(méi)有提供分隔符,默認(rèn)的分隔符為“,”。.concat方法創(chuàng)建一個(gè)新數(shù)組,其是對(duì)原數(shù)組的淺拷貝(注意是淺拷貝哦)。


棧方法 入棧push/unshift 出棧pop/shift

隊(duì)列方法 shift出隊(duì)列 unshift 入隊(duì)列

用.shift或.pop能很容易遍歷數(shù)組元素,并在操作過(guò)程中清空數(shù)組

list = [1,2,3,4,5,6,7,8,9,10]
while (item = list.shift()) {
    console.log(item)
}

模型映射.map

map方法會(huì)按順序給原數(shù)組中的每個(gè)元素(必須有值)都調(diào)用一次 callback函數(shù).callback,每次執(zhí)行后的返回值組合起來(lái)形成一個(gè)新數(shù)組. callback函數(shù)只會(huì)在有值的索引上被調(diào)用; 那些從來(lái)沒(méi)被賦過(guò)值或者使用delete刪除的索引則不會(huì)被調(diào)用。

查詢(xún).filter

filter對(duì)每個(gè)數(shù)組元素執(zhí)行一次回調(diào)函數(shù),并返回一個(gè)由回調(diào)函數(shù)返回true的元素組成的新數(shù)組?;卣{(diào)函數(shù)只會(huì)對(duì)已經(jīng)指定值的數(shù)組項(xiàng)調(diào)用,類(lèi)似SQL里where語(yǔ)句

排序.sort(比較函數(shù))

傳入一個(gè)function(a,b)的函數(shù)。

  • 如果a在b前,則返回值小于零(< 0)
  • 如果a和b是等價(jià)的,則返回值等于零(=== 0)
  • 如果a在b后,則返回值大于零(> 0)

復(fù)制.slice

返回的是淺拷貝
Array.prototype.slice能被用來(lái)將類(lèi)數(shù)組對(duì)象轉(zhuǎn)換為真正的數(shù)組。

Array.prototype.slice.call({ 0: 'a', 1: 'b', length: 2 })

從參數(shù)列表中移除最初的幾個(gè)元素,并將類(lèi)數(shù)組對(duì)象轉(zhuǎn)換為真正的數(shù)組。

var values = Array.prototype.slice.call(arguments, 2)//從第二個(gè)參數(shù)開(kāi)始
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容