更新時間:2020-10-21 16:55:29 來源:動力節(jié)點 瀏覽1671次
Javascript數(shù)組的相關(guān)知識是在面試中會經(jīng)常出現(xiàn)的內(nèi)容,在java面試題中考察的都是理論知識,對于程序員的開發(fā)來說,也會經(jīng)常出現(xiàn)關(guān)于javascript數(shù)組方法的實際操作的問題,這個需要大家掌握的。這篇文章列舉了10個比較常用的javascript數(shù)組方法,學(xué)習(xí)一下該怎樣操作。
javascript數(shù)組方法有很多,有數(shù)組原型方法,有從object對象繼承來的方法,還可以分為使用后改變和不改變原數(shù)組的方法,每一個分類中包含著很多種不同的javascript數(shù)組方法,下面簡單列舉10個常用的javascript數(shù)組方法,相應(yīng)的給出一個例子。
1、push()
功能:向數(shù)組的末尾添加一個或更多元素,并返回數(shù)組新的長度。
參數(shù):push(newData1, newData2, ......)
代碼如下:
var arr = [1,2,3];
console.log(arr.push("a")); //4---返回數(shù)組現(xiàn)在的長度
console.log(arr); //[1,2,3,"a"]---原數(shù)組改變
console.log(arr.push("hello","world")); //6---一次可添加多個數(shù)組,返回新的數(shù)組長度
console.log(arr); //[1,2,3,"a","hello",world]---原數(shù)組改變
2、shift()
功能:方法用于刪除并返回數(shù)組的第一個元素。
參數(shù):無
代碼如下:
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ù)組項——即最小的值位于最前面,最大的值排在最后面。在排序時,sort()方法會調(diào)用每個數(shù)組項的 toString()轉(zhuǎn)型方法,然后比較得到的字符串,以確定如何排序。即使數(shù)組中的每一項都是數(shù)值, sort()方法比較的也是字符串,因此會出現(xiàn)以下的這種情況:

為了解決上述問題,sort()方法可以接收一個比較函數(shù)作為參數(shù),以便我們指定哪個值位于哪個值的前面。比較函數(shù)接收兩個參數(shù),如果第一個參數(shù)應(yīng)該位于第二個之前則返回一個負(fù)數(shù),如果兩個參數(shù)相等則返回 0,如果第一個參數(shù)應(yīng)該位于第二個之后則返回一個正數(shù)。以下就是一個簡單的比較函數(shù):

如果需要通過比較函數(shù)產(chǎn)生降序排序的結(jié)果,只要交換比較函數(shù)返回的值即可:

4、splice()
splice():很強(qiáng)大的數(shù)組方法,它有很多種用法,可以實現(xiàn)刪除、插入和替換。刪除:可以刪除任意數(shù)量的項,只需指定 2 個參數(shù):要刪除的第一項的位置和要刪除的項數(shù)。例如splice(0,2)會刪除數(shù)組中的前兩項。插入:可以向指定位置插入任意數(shù)量的項,只需提供 3 個參數(shù):起始位置、 0(要刪除的項數(shù))和要插入的項。例如,splice(2,0,4,6)會從當(dāng)前數(shù)組的位置 2 開始插入4和6。
替換:可以向指定位置插入任意數(shù)量的項,且同時刪除任意數(shù)量的項,只需指定 3 個參數(shù):起始位置、要刪除的項數(shù)和要插入的任意數(shù)量的項。插入的項數(shù)不必與刪除的項數(shù)相等。例如,splice (2,1,4,6)會刪除當(dāng)前數(shù)組位置 2 的項,然后再從位置 2 開始插入4和6。splice()方法始終都會返回一個數(shù)組,該數(shù)組中包含從原始數(shù)組中刪除的項,如果沒有刪除任何項,則返回一個空數(shù)組。

5、indexOf()和 lastIndexOf()
indexOf():接收兩個參數(shù):要查找的項和(可選的)表示查找起點位置的索引。其中, 從數(shù)組的開頭(位置 0)開始向后查找。
lastIndexOf:接收兩個參數(shù):要查找的項和(可選的)表示查找起點位置的索引。其中, 從數(shù)組的末尾開始向前查找。
這兩個方法都返回要查找的項在數(shù)組中的位置,或者在沒找到的情況下返回1。在比較第一個參數(shù)與數(shù)組中的每一項時,會使用全等操作符。

6、filter()
功能:1.同forEach功能;2.filter的回調(diào)函數(shù)需要返回布爾值,當(dāng)為true時,將本次數(shù)組的數(shù)據(jù)返回給filter,最后filter將所有回調(diào)函數(shù)的返回值組成新數(shù)組返回(此功能可理解為“過濾”)。
參數(shù):filter()接收一個回調(diào)函數(shù)作為參數(shù),這個回調(diào)函數(shù)需要有返回值;filter(callback);callback默認(rèn)有三個參數(shù),分別為value,index,self:
value:遍歷到的數(shù)組元素;index:元素對應(yīng)的索引;self:數(shù)組自身。
(1)功能1:同forEach

(2)功能2:當(dāng)回調(diào)函數(shù)的返回值為true時,本次的數(shù)組值返回給filter,被filter組成新數(shù)組返回

7、ES6新增:from()
功能:將類數(shù)組對象和可遍歷對象轉(zhuǎn)化為數(shù)組
參數(shù):from(object, mapFunction, thisValue)
object:必需,要轉(zhuǎn)換為數(shù)組的對象
mapFunction:可選,數(shù)組中每個元素要調(diào)用的函數(shù)
thisValue:可選,映射函數(shù)(mapFunction)中的 this 對象

8、forEach()
forEach():對數(shù)組進(jìn)行遍歷循環(huán),對數(shù)組中的每一項運(yùn)行給定函數(shù)。這個方法沒有返回值。參數(shù)都是function類型,默認(rèn)有傳參,參數(shù)分別為:遍歷的數(shù)組內(nèi)容;第對應(yīng)的數(shù)組索引,數(shù)組本身。

9、map()
map():指“映射”,對數(shù)組中的每一項運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。下面代碼利用map方法實現(xiàn)數(shù)組中每個數(shù)求平方:

10、10.filter()
功能:1.同forEach功能;2.filter的回調(diào)函數(shù)需要返回布爾值,當(dāng)為true時,將本次數(shù)組的數(shù)據(jù)返回給filter,最后filter將所有回調(diào)函數(shù)的返回值組成新數(shù)組返回(此功能可理解為“過濾”)。參數(shù):filter()接收一個回調(diào)函數(shù)作為參數(shù),這個回調(diào)函數(shù)需要有返回值;filter(callback);callback默認(rèn)有三個參數(shù),分別為value,index,self。value:遍歷到的數(shù)組元素;index:元素對應(yīng)的索引;self:數(shù)組自身
(1)功能1:同forEach

(2)功能2:當(dāng)回調(diào)函數(shù)的返回值為true時,本次的數(shù)組值返回給filter,被filter組成新數(shù)組返回

以上就是今天列舉出介紹的10個javascript數(shù)組方法,是常出現(xiàn)常用的數(shù)組方法,也是大家都要掌握的操作。更多更全面的javascript數(shù)組方法數(shù)組方法,大家可以在本站的javascript教程中學(xué)習(xí)。

初級 202925

初級 203221

初級 202629

初級 203743