更新時(shí)間:2020-10-21 16:55:29 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1377次
Javascript數(shù)組的相關(guān)知識(shí)是在面試中會(huì)經(jīng)常出現(xiàn)的內(nèi)容,在java面試題中考察的都是理論知識(shí),對(duì)于程序員的開發(fā)來(lái)說(shuō),也會(huì)經(jīng)常出現(xiàn)關(guān)于javascript數(shù)組方法的實(shí)際操作的問(wèn)題,這個(gè)需要大家掌握的。這篇文章列舉了10個(gè)比較常用的javascript數(shù)組方法,學(xué)習(xí)一下該怎樣操作。
javascript數(shù)組方法有很多,有數(shù)組原型方法,有從object對(duì)象繼承來(lái)的方法,還可以分為使用后改變和不改變?cè)瓟?shù)組的方法,每一個(gè)分類中包含著很多種不同的javascript數(shù)組方法,下面簡(jiǎn)單列舉10個(gè)常用的javascript數(shù)組方法,相應(yīng)的給出一個(gè)例子。
1、push()
功能:向數(shù)組的末尾添加一個(gè)或更多元素,并返回?cái)?shù)組新的長(zhǎng)度。
參數(shù):push(newData1, newData2, ......)
代碼如下:
var arr = [1,2,3];
console.log(arr.push("a")); //4---返回?cái)?shù)組現(xiàn)在的長(zhǎng)度
console.log(arr); //[1,2,3,"a"]---原數(shù)組改變
console.log(arr.push("hello","world")); //6---一次可添加多個(gè)數(shù)組,返回新的數(shù)組長(zhǎng)度
console.log(arr); //[1,2,3,"a","hello",world]---原數(shù)組改變
2、shift()
功能:方法用于刪除并返回?cái)?shù)組的第一個(gè)元素。
參數(shù):無(wú)
代碼如下:
var arr = [1,2,3]
console.log(arr.shift()); //1---返回被刪除的元素
console.log(arr); //[2,3]---原數(shù)組改變
console.log(arr.shift()); //2---返回被刪除的元素
console.log(arr); //[3]---原數(shù)組改變
3、sort()
sort():按升序排列數(shù)組項(xiàng)——即最小的值位于最前面,最大的值排在最后面。在排序時(shí),sort()方法會(huì)調(diào)用每個(gè)數(shù)組項(xiàng)的 toString()轉(zhuǎn)型方法,然后比較得到的字符串,以確定如何排序。即使數(shù)組中的每一項(xiàng)都是數(shù)值, sort()方法比較的也是字符串,因此會(huì)出現(xiàn)以下的這種情況:
為了解決上述問(wèn)題,sort()方法可以接收一個(gè)比較函數(shù)作為參數(shù),以便我們指定哪個(gè)值位于哪個(gè)值的前面。比較函數(shù)接收兩個(gè)參數(shù),如果第一個(gè)參數(shù)應(yīng)該位于第二個(gè)之前則返回一個(gè)負(fù)數(shù),如果兩個(gè)參數(shù)相等則返回 0,如果第一個(gè)參數(shù)應(yīng)該位于第二個(gè)之后則返回一個(gè)正數(shù)。以下就是一個(gè)簡(jiǎn)單的比較函數(shù):
如果需要通過(guò)比較函數(shù)產(chǎn)生降序排序的結(jié)果,只要交換比較函數(shù)返回的值即可:
4、splice()
splice():很強(qiáng)大的數(shù)組方法,它有很多種用法,可以實(shí)現(xiàn)刪除、插入和替換。刪除:可以刪除任意數(shù)量的項(xiàng),只需指定 2 個(gè)參數(shù):要?jiǎng)h除的第一項(xiàng)的位置和要?jiǎng)h除的項(xiàng)數(shù)。例如splice(0,2)會(huì)刪除數(shù)組中的前兩項(xiàng)。插入:可以向指定位置插入任意數(shù)量的項(xiàng),只需提供 3 個(gè)參數(shù):起始位置、 0(要?jiǎng)h除的項(xiàng)數(shù))和要插入的項(xiàng)。例如,splice(2,0,4,6)會(huì)從當(dāng)前數(shù)組的位置 2 開始插入4和6。
替換:可以向指定位置插入任意數(shù)量的項(xiàng),且同時(shí)刪除任意數(shù)量的項(xiàng),只需指定 3 個(gè)參數(shù):起始位置、要?jiǎng)h除的項(xiàng)數(shù)和要插入的任意數(shù)量的項(xiàng)。插入的項(xiàng)數(shù)不必與刪除的項(xiàng)數(shù)相等。例如,splice (2,1,4,6)會(huì)刪除當(dāng)前數(shù)組位置 2 的項(xiàng),然后再?gòu)奈恢?2 開始插入4和6。splice()方法始終都會(huì)返回一個(gè)數(shù)組,該數(shù)組中包含從原始數(shù)組中刪除的項(xiàng),如果沒(méi)有刪除任何項(xiàng),則返回一個(gè)空數(shù)組。
5、indexOf()和 lastIndexOf()
indexOf():接收兩個(gè)參數(shù):要查找的項(xiàng)和(可選的)表示查找起點(diǎn)位置的索引。其中, 從數(shù)組的開頭(位置 0)開始向后查找。
lastIndexOf:接收兩個(gè)參數(shù):要查找的項(xiàng)和(可選的)表示查找起點(diǎn)位置的索引。其中, 從數(shù)組的末尾開始向前查找。
這兩個(gè)方法都返回要查找的項(xiàng)在數(shù)組中的位置,或者在沒(méi)找到的情況下返回1。在比較第一個(gè)參數(shù)與數(shù)組中的每一項(xiàng)時(shí),會(huì)使用全等操作符。
6、filter()
功能:1.同forEach功能;2.filter的回調(diào)函數(shù)需要返回布爾值,當(dāng)為true時(shí),將本次數(shù)組的數(shù)據(jù)返回給filter,最后filter將所有回調(diào)函數(shù)的返回值組成新數(shù)組返回(此功能可理解為“過(guò)濾”)。
參數(shù):filter()接收一個(gè)回調(diào)函數(shù)作為參數(shù),這個(gè)回調(diào)函數(shù)需要有返回值;filter(callback);callback默認(rèn)有三個(gè)參數(shù),分別為value,index,self:
value:遍歷到的數(shù)組元素;index:元素對(duì)應(yīng)的索引;self:數(shù)組自身。
(1)功能1:同forEach
(2)功能2:當(dāng)回調(diào)函數(shù)的返回值為true時(shí),本次的數(shù)組值返回給filter,被filter組成新數(shù)組返回
7、ES6新增:from()
功能:將類數(shù)組對(duì)象和可遍歷對(duì)象轉(zhuǎn)化為數(shù)組
參數(shù):from(object, mapFunction, thisValue)
object:必需,要轉(zhuǎn)換為數(shù)組的對(duì)象
mapFunction:可選,數(shù)組中每個(gè)元素要調(diào)用的函數(shù)
thisValue:可選,映射函數(shù)(mapFunction)中的 this 對(duì)象
8、forEach()
forEach():對(duì)數(shù)組進(jìn)行遍歷循環(huán),對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)。這個(gè)方法沒(méi)有返回值。參數(shù)都是function類型,默認(rèn)有傳參,參數(shù)分別為:遍歷的數(shù)組內(nèi)容;第對(duì)應(yīng)的數(shù)組索引,數(shù)組本身。
9、map()
map():指“映射”,對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。下面代碼利用map方法實(shí)現(xiàn)數(shù)組中每個(gè)數(shù)求平方:
10、10.filter()
功能:1.同forEach功能;2.filter的回調(diào)函數(shù)需要返回布爾值,當(dāng)為true時(shí),將本次數(shù)組的數(shù)據(jù)返回給filter,最后filter將所有回調(diào)函數(shù)的返回值組成新數(shù)組返回(此功能可理解為“過(guò)濾”)。參數(shù):filter()接收一個(gè)回調(diào)函數(shù)作為參數(shù),這個(gè)回調(diào)函數(shù)需要有返回值;filter(callback);callback默認(rèn)有三個(gè)參數(shù),分別為value,index,self。value:遍歷到的數(shù)組元素;index:元素對(duì)應(yīng)的索引;self:數(shù)組自身
(1)功能1:同forEach
(2)功能2:當(dāng)回調(diào)函數(shù)的返回值為true時(shí),本次的數(shù)組值返回給filter,被filter組成新數(shù)組返回
以上就是今天列舉出介紹的10個(gè)javascript數(shù)組方法,是常出現(xiàn)常用的數(shù)組方法,也是大家都要掌握的操作。更多更全面的javascript數(shù)組方法數(shù)組方法,大家可以在本站的javascript教程中學(xué)習(xí)。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743