JavaScript中常見的數組操作函數及用法
昨天寫了個帖子,匯總了下常見的JavaScript中的字符串操作函數及用法。今天正好有時間,也去把JavaScript中常見的數組操作函數及用法總結一下,這樣方便大家准備參考。如果恰好你也在准備各種筆試,希望對你有所幫助。同時,也歡迎補充。
1、數組創建
創建數組應該是最簡單的了,有用數組字面量創建和數組構造函數兩種方法,見下:
var array1 = new Array(); var array2 = [];
上面是創建數組的最常見的兩種方法,其中第二種方法因為簡單直觀而被開發者推崇。其中,使用構造函數創建數組同樣可以接收用於存放於數組的值,如:
var array3 = new Array("num1","num2","num3");//["num1", "num2", "num3"]
同樣,如果你傳給構造函數的值是一個number,則該number如果大於0,則將是這個新創建數組的長度,如:
var array4 = new Array(5); array4.length;//5
同樣的效果下,我們還是推薦使用字面量的形式創建數組。
2、數組檢測
有兩種可以檢測數組的方式,第一種使用instanceof,如下:
var array5 = []; array5 instanceof Array;//true
同時,Array也自帶了isArray()的方法,如下:
var array6 = []; Array.isArray(array6 );//true
3、獲取數組長度
數組長度可以通過.length獲取,如下:
var array7 = [1,2,3,4]; array7.length;//4
同時,數組的長度你也可以隨時設置,如果設置的長度超過之前的,則后面的內容會自動補充維undefined,否則會截取有效長度的內容,如下:
var array8 = [1,2,3,4,5]; console.log(array8.length);//5 array8.length = 8; array8;//[1, 2, 3, 4, 5, undefined × 3] array8.length = 3; array8;//[1,2,3]
4、獲取或者設置數組值
我們可以獲取和設置數組的值,這里需要記住的是數組的下標是從0開始的,如下:
var array9 = [1,2,3,4,5,6]; array9[2];//3 array9[2] = 4; array9[2];//4
5、數組字符串轉換
數組轉換為字符串可以調用數組自帶的toString()方法,返回數組的字符串形式,如下:
var array10 = [1,2,3,4]; array10.toString();//"1,2,3,4"
另外,數組也有另外一個非常有用的函數join(),它接受一個字符串參數,用於插在數組各項之間形成字符串,如下:
var array11 = [1,2,3,4];
array11.join("||");//"1||2||3||4"
6、數組添加和刪除項
前面講過,我們可以設置length自動給數組添加一些undefined的值。同時,我們也可以通過訪問一個超過數組本來的長度的數字下標以給數組添加項,如:
var array12 = [1,2,3,4]; array12[5] = 5; array12[6] = 6; array12;//[1, 2, 3, 4, undefined × 1, 5, 6]
另外,我們也可以通過push()給數組添加新的元素,如下:
var array13 = [1,2,3,4]; array13.push(5,6); array13;//[1, 2, 3, 4, 5, 6]
與push()相對的是有一個pop()方法,用以刪除數組中的項,且從數組最后一項開始,例如:
var array14 = [1,2,3,4]; array14.pop();//4 array14.pop();//3; array14;//[1, 2]
同時,我們可以通過delete刪除數組某項,但是只會刪除該值,恢復默認的undefined,如下:
var array15 = [1,2,3,4,5]; delete array15[1]; array15;//[1, undefined × 1, 3, 4, 5]
另外兩個非常有用的方法shift()和unshift(),跟push()和pop()方法類似,其中,shift()方法用以從數組起始位置開始刪除元素且返回被刪除的元素,如下:
var array16 = [1,2,4,5,6]; array16.shift();//1 array16;[2,4,5,6]
而unshift()與shift()相反,用於向數組起始位置添加元素,並且數組的原來元素分別后移,如下:
var array17 = [1,2,3,4]; array17.unshift(2);//返回數組長度5,下同 array17.unshift(3); array17.unshift(4); array17;//[4, 3, 2, 1, 2, 3, 4]
7、數組翻轉和排序
我們可以對一個數組進行翻轉,也可以讓一個數組進行排序,如下:
var array18 = [21,14,54,35,23,44,103]; array18.reverse();//[103, 44, 23, 35, 54, 14, 21] array18.sort();//[103, 14, 21, 23, 35, 44, 54]
注意,數組默認排序並不是大小,而是按照對應字符串逐個編碼排序的。你可以通過給sort()傳遞一個比較函數,類改變規則,如下:
var array18 = [21,14,54,35,23,44,103];
array18.reverse();//[103, 44, 23, 35, 54, 14, 21]
array18.sort(function(a,b){return a - b;});//[14, 21, 23, 35, 44, 54, 103]
8、數組連接
我們可以把不同的數組連接到一起,如下:
var array19 = [1,2,3]; var array20 = [4,5]; var array21 = array19.concat(array20);//[1, 2, 3, 4, 5]
注意原數組都沒有也不會發生改變。
9、數組分割
我們同樣可以通過slice()把數組進行分割,它接受一個參數的話表示分割的起始位置,接受第二個可選的參數是表示結束的位置,如下:
var array22 = [1,2,3,4,5,6]; var array23 = array22.slice(4);//5,6 var array24 = array22.slice(2,4);//3,4
注意,分割的數組包含slice()的起始位置而不包含結束位置。
10、最強大的splice()
現在,該講講最強大的splice()函數了,它接受三個參數,可實現添加、刪除、修改等不同的功能。看下w3school上它的語法,如下:
①添加元素
var array25 = [1,2,3,4,5,6]; array25.splice(2,0,88,77);//[] 返回被刪除的元素,這里沒有刪除,返回為空 array25;//[1, 2, 88, 77, 3, 4, 5, 6]
②修改元素
var array26 = [1,2,3,4,5,6,7]; array26.splice(2,2,33,44);//[3,4] array26;//[1, 2, 33, 44, 5, 6, 7]
③刪除元素
var array27 = [1,2,3,4,5,6,7]; array27.splice(2,2);//[3, 4] array27;//[1, 2, 5, 6, 7]
結束語
匆匆總結了下,不知道有沒有漏下什么關鍵的函數或者方法,希望大家可以給予補充!
