JS 數(shù)組的常用方法歸納
改變原數(shù)組的方法
shift()把數(shù)組的第一個(gè)元素從其中刪除,并返回第一個(gè)元素的值,如果數(shù)組是空的,那么 shift() 方法將不進(jìn)行任何操作,返回 undefined 值。請注意,該方法不創(chuàng)建新數(shù)組,而是直接修改原有的 arrayObject。該方法會(huì)改變數(shù)組的長度。
unshift()?可向數(shù)組的開頭添加一個(gè)或更多元素,并返回新的長度。unshift() 方法將把它的參數(shù)插入 arrayObject 的頭部,并將已經(jīng)存在的元素順次地移到較高的下標(biāo)處,以便留出空間。該方法的第一個(gè)參數(shù)將成為數(shù)組的新元素 0,如果還有第二個(gè)參數(shù),它將成為新的元素 1,以此類推。請注意,unshift() 方法不創(chuàng)建新的創(chuàng)建,而是直接修改原有的數(shù)組。該方法會(huì)改變數(shù)組的長度。
pop()刪除并返回?cái)?shù)組的最后一個(gè)元素,該方法將刪除 arrayObject 的最后一個(gè)元素,把數(shù)組長度減 1,并且返回它刪除的元素的值。如果數(shù)組已經(jīng)為空,則 pop() 不改變數(shù)組,并返回 undefined 值。
push()?可向數(shù)組的末尾添加一個(gè)或多個(gè)元素,并返回新的長度。push() 方法可把它的參數(shù)順序添加到 arrayObject 的尾部。它直接修改 arrayObject,而不是創(chuàng)建一個(gè)新的數(shù)組。push() 方法和 pop() 方法使用數(shù)組提供的先進(jìn)后出棧的功能。該方法會(huì)改變數(shù)組的長度。
reverse()?用于顛倒數(shù)組中元素的順序。該方法會(huì)改變原來的數(shù)組,而不會(huì)創(chuàng)建新的數(shù)組。
sort()?用于對數(shù)組的元素進(jìn)行排序。如果調(diào)用該方法時(shí)沒有使用參數(shù),將按字母順序?qū)?shù)組中的元素進(jìn)行排序,說得更精確點(diǎn),是按照字符編碼的順序進(jìn)行排序。要實(shí)現(xiàn)這一點(diǎn),首先應(yīng)把數(shù)組的元素都轉(zhuǎn)換成字符串(如有必要),以便進(jìn)行比較。
?? ??? 如果想按照其他標(biāo)準(zhǔn)進(jìn)行排序,就需要提供比較函數(shù),該函數(shù)要比較兩個(gè)值,然后返回一個(gè)用于說明這兩個(gè)值的相對順序的數(shù)字。比較?? ??? ???函數(shù)應(yīng)該具有兩個(gè)參數(shù) a 和 b,其返回值如下:
?? ??? ??? ??? ?若 a 小于 b,在排序后的數(shù)組中 a 應(yīng)該出現(xiàn)在 b 之前,則返回一個(gè)小于 0 的值。
?? ??? ??? ??? ?若 a 等于 b,則返回 0。
?? ??? ??? ??? ?若 a 大于 b,則返回一個(gè)大于 0 的值。
? ? ? ?7.splice()?向/從數(shù)組中添加/刪除項(xiàng)目,然后返回被刪除的項(xiàng)目。?該方法會(huì)改變原始數(shù)組。splice() 方法與 slice() 方法的作用是不同的,splice() 方法會(huì)直接對數(shù)組進(jìn)行修改
???splice() 方法可刪除從 index 處開始的零個(gè)或多個(gè)元素,并且用參數(shù)列表中聲明的一個(gè)或多個(gè)值來替換那些被刪除的元素。如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數(shù)組。??
arrayObject.splice(index,howmany,item1,.....,itemX)? ?
參數(shù)描述
index必需。整數(shù),規(guī)定添加/刪除項(xiàng)目的位置,使用負(fù)數(shù)可從數(shù)組結(jié)尾處規(guī)定位置。
howmany必需。要?jiǎng)h除的項(xiàng)目數(shù)量。如果設(shè)置為 0,則不會(huì)刪除項(xiàng)目。
item1, ..., itemX可選。向數(shù)組添加的新項(xiàng)目。
返回值
類型描述
Array包含被刪除項(xiàng)目的新數(shù)組,如果有的話。
不改變原數(shù)組的方法
concat()?連接兩個(gè)或多個(gè)數(shù)組,不改變現(xiàn)有數(shù)組,返回新數(shù)組,添加的是數(shù)組中的元素
join(",")?把數(shù)組中的所有元素放入一個(gè)字符串,通過‘,’分隔符進(jìn)行分隔,返回字符串
slice(start,end)從已有的數(shù)組中返回選定的元素,從start開始選取,?(若是負(fù)數(shù),從尾部開始算起的位置:-2指倒數(shù)第二個(gè)元素)到end(不包括該元素),該方法不修改數(shù)組,返回一個(gè)字?jǐn)?shù)組
map(function(currentValue,index,arr),thisValue)按照原始數(shù)組元素順序依次處理元素,返回新數(shù)組,數(shù)組中的元素是原數(shù)組元素調(diào)用函數(shù)處理后的值,不會(huì)檢測空數(shù)組,不改變原數(shù)組。currentValue (必須,當(dāng)前元素的值)index(可選,索引值)arr(可選,當(dāng)前元素屬于數(shù)組對象),thisValue(可選,執(zhí)行回調(diào)時(shí)使用,傳遞給函數(shù)(this))
forEach()?調(diào)用數(shù)組的每個(gè)元素,并將元素傳遞給回調(diào)函數(shù),空數(shù)組不執(zhí)行回調(diào)函數(shù),參數(shù)同上
filter()?創(chuàng)建一個(gè)新數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素,不對空數(shù)組檢測,不改變原數(shù)組,參數(shù)同上
some()檢測數(shù)組中的元素是否滿足指定條件(函數(shù)提供),依次執(zhí)行數(shù)組的每個(gè)元素,如果有一個(gè)滿足,返回true,剩余元素不再執(zhí)行檢測,如果沒有滿足條件的元素返回false(不檢測空數(shù)組,不改變原數(shù)組)參數(shù)同上
every()檢測數(shù)組所有元素是否都符合指定條件(函數(shù)提供),使用指定函數(shù)檢測數(shù)組中的所有元素,如果有一個(gè)元素不滿足返回false剩余不再檢測,如果所有都滿足,返回true(不檢測空數(shù)組,不改變原數(shù)組)參數(shù)同上
其他
indexOf(item,start)返回?cái)?shù)組中某個(gè)指定的元素位置,該方法將從頭到尾檢索數(shù)組,看是否含有對應(yīng)元素,在start(可選)開始檢索(或從頭沒有start),如果找到一個(gè)item(必須) 返回item的第一次出現(xiàn)的位置。開始位置索引是0,沒找到返回-1? (若想查找字符串最后出現(xiàn)的位置用lastIndexOf()方法。
includes(searchElement,fromIndex)用來判斷一個(gè)數(shù)組是否包含一個(gè)指定的值,是 返回true,否 返回false
searchElement (必須)需要查找的元素值,fromIndex(可選),開始查找的索引