Array對象提供存儲和處理一組其餘對象的一種手段。數組能夠存儲數值、字符串或其餘JavaScript對象。建立JavaScript數組有幾種不一樣的方法。例如,下面的語句穿件一樣的駐足的3個相同的版本:數組
var arr = ["one","two","three"];app
var arr2 = new Array();函數
arr2[0] = "one";spa
arr2[1] = "two";對象
arr2[2] = "three";排序
arr3.push("one");索引
arr3.push("two");three
arr3.push("three");ip
第一種方法定義了arr,並使用[]在一條語句中設置它的內容。第二種方法建立arr2對象,而後使用直接索引賦值來增長條目。第三種方法建立arr3對象,而後使用擴展數組的最佳選擇push()方法來把條目推到數組上。字符串
要肯定數組中元素的個數,能夠使用數組對象的length屬性,以下面的例子所示:
var numOfItems = arr.length;
數組遵循一個從零開始的索引,這意味着第一項在索引0上,等等。例如,在下面的代碼中,變量first的值是Monday,變量last的值將是Friday:
var
week = ["Mondy","Tuesday","Wednesday","Thursday","Friday"];
var first = w [0];
var last = week[week.length-1];
數組對象有許多內置的函數,使你能夠用不一樣的方式來訪問和操做數組。下表描述了鏈接到Array對象,讓你操做數組內容的方法。
用來操做Array對象的方法
方 法 | 說 明 |
concat(arr1,arr2,...) | 返回一個數組和做爲參數傳遞的數組的鏈接副本 |
indexOf(value) | 返回數組中value的第一個索引。或若是沒有找到該條目,返回-1 |
join(separator) | 把一個數組中的全部元素鏈接爲由separator分隔的單個字符串。若是沒有指定分隔符,則使用逗號做爲分隔符 |
lastIndexOf(value) | 返回數組中value的最後一個索引。或若是沒有找到該條目,返回-1 |
pop() | 刪除數組的最後一個元素,並返回該元素 |
push(item1,item2,...) | 添加一個或多個新元素到數組的結尾,並返回數組的新長度 |
reverse() | 反轉數組中全部元素的順序 |
shift() | 刪除數組的第一個元素,並返回該元素 |
slice(start,end) | 返回start和end索引之間的元素 |
sort(sortFunction) | 對數組的元素排序。sortFunction是可選的 |
splice(index,count,item1,item2...) | 在index指定的索引處,刪除count個條目,而後在index出插入做爲參數傳入的任意可選條目 |
toString() | 返回一個數組的字符串形式 |
unshift() | 將新元素添加到數組的開頭,並返回新的長度 |
valueOf() | 方法返回一個數組對象的原始值 |
一、合併數組
你能夠用合併String對象的相同方式來合併數組:使用+語句或使用concat()方法。在下面的代碼中,arr3最終和arr4是同樣的:
var arr1 = [1,2,3];
var arr2 = ["one","two","three"];
var arr3 = arr1 + arr2;
var arr4 = arr1.concat(arr2);
注意
你能夠將一個數字數組和一個字符串數組合並。數組中的每一項都將保持本身的對象類型。然而,當你使用數組中的條目時,須要對有多個數據類型的數組保持跟蹤,這樣你纔不會陷入麻煩。
二、遍歷數組
你能夠使用for或for/in循環對數組進行遍歷。下面的代碼說明了使用每種方法再數組中遍歷每一個條目的寫法:
var week = ["Monday","Tuesday","Wednesday","Thursday","Friday"];
for ( var i = 0; i<week.length; i++){
console.log("<li>" + week[i] + "</li>");
}
for (dayIndex in week){
console.log("<li>" + week[dayIndex] + "</li>");
}
三、將數組轉換爲字符串
Array對象的一個很是有用的功能是,將一個數組的元素結合在一塊兒,製造一個String對象,經過使用join()方法指定分隔符分隔。例如,下面的代碼把時間組件從新鏈接成12:10:36的格式:
var timeArr = [12,10,36]
var timeStr = timeArr.join(":");
四、檢查數組是否包含某個條目
你常常須要檢查數組中是否包含某一個條目。能夠使用indexOf()方法作到這一點。若是代碼沒有找到列表中的條目,則返回-1。若是一個條目在week數組中,下面的函數就把一條消息寫到控制檯:
function message(day){
var week = ["Monday","Tuesday","Wednesday","Thursday","Friday"];
if (week.indexOf(day) != -1){
console.log("Happy" + day);
}
}
五、在數組中添加條目和刪除條目
使用各類內置的方法,有多種往Array對象添加條目,並從Array對象刪除條目的方法。下表列出了一些在本書中使用的不一樣方法。
用來在數組添加或刪除元素的Array對象方法,數組顯示爲從表開始到末尾的進度
語 句 | x的值 | arr的值 |
var arr = [1,2,3,4,5]; | undefined | 1,2,3,4,5 |
var x = 0; | 0 | 1,2,3,4,5 |
x = arr.unshift("zero"); | 6(長度) | zero,1,2,3,4,5 |
x = arr.push(6,7,8); | 9(長度) | zero,1,2,3,4,5,6,7,8 |
x = arr.shift(); | zero | 1,2,3,4,5,6,7,8 |
x = arr.pop() | 8 | 1,2,3,4,5,6,7 |
x = arr.splice(3,3,"four","five","six"); | 4,5,6 | 1,2,3,four,five,six,7 |
x = arr.splice(3,1); | four | 1,2,3,five,six,7 |
x = arr.splice(3); | five,six,7 | 1,2,3 |