以前學習的數據類型,只能存儲一個值(好比:Number/String)。咱們想在一個變量中存儲多個值,應該如何存儲?
所謂數組,就是將多個元素(一般是同一類型)按必定順序排列放到一個集合中,那麼這個集合咱們就稱之爲數組。
// 字面量方式建立數組 var arr1 = []; //空數組 // 建立一個包含3個數值的數組,多個數組項以逗號隔開 var arr2 = [1, 3, 4]; // 建立一個包含2個字符串的數組 var arr3 = ['a', 'c']; console.log(arr1); console.log(arr2); // 構造函數方式建立數組 var a1 = new Array(); //空數組 var a2 = new Array('1',2,'h'); //包含三個元素的數組 console.log(a1); console.log(a2); // 能夠經過數組的length屬性獲取數組的長度 console.log(arr3.length); // 能夠設置length屬性改變數組中元素的個數 arr3.length = 0; console.log(arr3[0]);//undefined
思考:二維數組什麼樣?數組
特別注意:JS中不像PHP,沒有關聯數組.函數
// 格式:數組名[下標] 下標又稱索引 // 下標從0開始 // 功能:獲取數組對應下標的那個值,若是下標不存在,則返回undefined。 var arr = ['red',, 'green', 'blue']; arr[0]; // red arr[2]; // blue arr[3]; // 這個數組的最大下標爲2,所以返回undefined
遍歷:遍佈全部,對數組的每個元素都訪問一次就叫遍歷。
for循環數組遍歷的基本語法:學習
for(var i = 0; i < arr.length; i++) { // 數組遍歷的固定結構 }
for循環示例:code
var arr1 = [1, 3, 4]; for(var i = 0;i<arr1.length;i++){ console.log(arr1[i]); }
whil循環示例:索引
var arr1 = [1, 3, 4]; var i = 0; while(i<arr1.length){ console.log(arr1[i]); i++; }
// 格式:數組名[下標/索引] = 值; // 若是下標有對應的值,會把原來的值覆蓋,若是下標不存在,會給數組新增一個元素。 var arr = ["red", "green", "blue"]; // 把red替換成了yellow arr[0] = "yellow"; // 給數組新增長了一個pink的值 arr[3] = "pink";
案例1:求數組中的全部數的和字符串
//求和 var arr = [10, 20, 30, 40, 50]; //定義變量存儲和 var sum = 0; for (var i = 0; i < arr.length; i++) { sum += arr[i]; } console.log("和爲:" + sum);
案例2:獲取數組中的最大值console
//最大值 var arr = [10, 20, 30, 40, 50, 60]; //假設這個變量中的值是最大的 var maxNum = arr[0]; //遍歷數組 for (var i = 0; i < arr.length; i++) { //判斷 if (maxNum < arr[i]) { maxNum = arr[i]; } } console.log("最大值是:" + maxNum);
案例3: 遍歷出數組中全部的偶數for循環
// 遍歷出數組中全部的偶數 var arr = [1,2,3,4,5,6,7]; for(var i=0;i<arr.length;i++){ //判斷 if(arr[i]%2==0){ console.log(arr[i]); } }
案例4:將數組轉爲字符串並以 | 分割class
//把數組中的每一個名字後面拼接一個|而後以字符串的方式輸出 var names = ["卡卡西", "佐助", "鳳姐", "鳴人", "黑山老妖"]; var str = "";//空的字符串,用來存儲最後的拼接的結果的字符串 //不停的遍歷數組的數據,而且拼接字符串 for (var i = 0; i < names.length - 1; i++) { str += names[i] + "|";//拼接字符串的方式 } str += names[names.length - 1]; console.log(str);