數組是值的有序集合。數組中的每一個值叫作一個元素,而每一個元素在數組中都右一個惟一的位置。這個位置用數字表示,叫作索引數組;用字符串表示,叫作關聯數組。
JavaScript數組是無類型的;數組的元素能夠是任何的類型(字符串,數字值,布爾值等),而且每一個數組的不一樣元素多是不一樣的類型。
JavaScript數組是動態的:根據須要,能夠動態地向數組插入新的元素,或者從數組中刪除指定的元素程序員
語法:數組
var 數組名稱 = [元素1,元素2,...]
示例代碼:函數
var arr1 = [];/*定義一個空數組*/ var arr2 = [100,'星矢',true]; console .log(arr1);/*輸出結果爲:[]*/ console .log(arr2);/*輸出結果:[100,'星矢',true]*/
語法:code
var 數組名稱 = new Array (元素1,元素2,...); var 數組名稱 = new Array (length);/*length是number類型 表示數組的長度(存在的元素個數)*/
示例代碼:索引
var arr1 = new Array ();/*定義一個空數組*/ var arr2 = new Array (100,'星矢',true); var arr3 = new Array (length); console .log(arr1); 輸出結果:[100,'星矢',true]*/ console .log(arr2); /*輸出結果:*/ console .log(arr3); /*輸出結果:[ <10 empty items> ]*/
語法:ip
var 數組名稱 = Array(元素1,元素2,元素3...); var 數組名稱 = Array(length);
示例代碼:
var arr1 = Array(100,5,2,);
var arr2 = Array(5);
console .log(arr1);/輸出結果:[ 100, 5, 10 ]/
console .log(arr2);/輸出結果:[ <50 empty items> ]/字符串
索引數組就是存儲元素的位置使用數字值來表示,通常稱之爲下標或角標。數組的長度與元素的個數是一致的,數字是以0開頭的。
示例代碼以下:it
var arr = []; arr[0]='索引數組'; arr[1]=100; arr[2]=true; console .log(arr);/*輸出結果爲: ['索引數組',100,true]*/
注意:關聯數組的數組的長度與元素的個數不一致,緣由是JavaScript的官方不支持關聯數組。console
var arr = [];/*定義一個空數組*/ arr['who']='誰啊' arr['what']='啥啊' arr['how']='咋的了' console .log(arr);/*輸出結果:[ who: '誰啊', what: '啥啊', how: '咋的了' ]*/
索引數組的位置容許不連續的,沒有定義的元素的位置默認爲空(undefined),這樣的數組叫作稀疏數組,數組的長度與元素的個數是不同的。
示例代碼:循環
var arr = []; arr[0]='誰啊'; arr[5]='啥啊'; arr[6]='咋的了'; console .log(arr); console .log(arr.length);/*輸出的結果爲: [ '誰啊', <4 empty items>, '啥啊', '咋的了' ] 7 */
將稀疏數組進行處理,獲得正常的索引數組
var newArr=[]; for (var i=0; i<arr.length; i++){ if(arr[i] !== undefined){ newArr.push(arr[i]); } } console .log(newArr);
示例代碼以下:
// 定義數組的默認爲索引數組 var arr = ['索引數組',100,null]; // 調用數組名稱時,獲得只是存儲全部元素數據的集合 console.log(arr); // 訪問索引數組中的元素 -> 數組名稱[索引值] console.log(arr[0]); // 若是訪問了數組中未定義的位置的元素時 - 語法不抱錯,結果爲 undefined console.log(arr[5]); // 索引數組中索引值最大爲 arr.length - 1 // JavaScript中的關聯數組定義與訪問都是沒有問題的 var arr1 = []; arr1['name'] = 'Chambers'; arr1['age'] = 23; arr1['job'] = '學生'; console.log(arr1['name']);
示例代碼:
var arr1 = []; arr1[0] = '臥龍學苑'; arr1[1] = true; // 關聯數組 var arr2 = []; arr2['name'] = '張無忌'; arr2['age'] = 19; arr2['job'] = '教主'; // 經過數組的索引值找到對應元素的位置,再經過從新賦值的操做進行修改 arr1[0] = 100; console.log(arr1); arr2['name'] = '周芷若';2176491621 console.log(arr2); // 若是索引值是新的,就是新增數組的元素操做 arr1[4] = '臥龍學苑'; console.log(arr1);
var arr1 = []; arr1[0] = '臥龍學苑'; arr1[1] = true; // 關聯數組 var arr2 = []; arr2['name'] = '張無忌'; arr2['age'] = 19; arr2['job'] = '教主'; /* 使用 delete 運算符進行刪除數組的元素 * 注意 - 只是刪除元素的數據內容,而對應的位置被保留 -> 稀疏數組 */ delete arr1[0]; console.log(arr1);
var arr = ['臥龍學苑', 100, true, undefined]; for (var i=0; i<arr.length; i++) { console.log(arr[i]); }
在ECMAScript5中新增了for...in語句 一樣可用於遍歷數組
for...in語句還能夠用於遍歷稀疏數組 循環的每次將一個有效元素返回
for語句: 循環的開始和結束 都是由程序員決定的
for..in語句: 循環只能從開始到結束
var arr = ['臥龍學苑', 100, true, undefined]; for (var i in arr) { console.log(arr[i]); }
數組是能夠嵌套的,這就意味着數組能夠做爲一個元素被包含在另一個數組裏面,利用JS這個特色建立二維數組,即數組的數組。
var arr = [];// 定義一個空數組 arr[0] = [100,200,300]; arr[1] = [400,500,600]; arr[2] = [700,800,900]; // console.log(arr); // 訪問二維數組中的元素 var result = arr[0]; /*console.log(result[0]); console.log(arr[0][0]);*/ // 循環遍歷二維數組 for (var i=0; i<arr.length; i++) { console.log(arr[i]); for (var j=0; j<arr[i].length; j++) { console.log(arr[i][j]); } }