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

Array對象的一些基本信息

查找.indexOf

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

循環(huán) forEach

every 和 some

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

join 和 concat

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


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

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

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

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

模型映射.map

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

查詢.filter

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

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

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

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

復(fù)制.slice

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

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

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

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

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

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