索引數組:下標是數字數組
㈠什么是?
內存中連續儲存多個數據的數據結構,再起一個統一的名字
㈡為什么?
①普通的變量只能存儲一個數據程序=數據結構+算法
②算法:解決問題的步驟
③數據結構:數據在內存中的存儲結構
好的數據結構可以極大的提高程序的執行效率
㈢何時?
只要存儲多個連續的數據
㈣創建
★創建空數組:2種
①數組直接量:var arr = [ ];
②用new:var arr = new Array();
新建 數組
何時:在創建數組時,還不知道數組中的元素內容時
③示例
var arr1 = [ ]; //定義一個不包含元素的數組
var arr2 = [97,85,79]; //定義一個包含3個元素的數組
var arr3 = new Array( ); //定義一個不包含元素的數組
var arr4 = new Array("Tom","Mary","John"); //定義一個三個字符串元素的數組
★創建數組同時初始化
①數組直接量:var arr = [元素1,元素2,...];
②用 new: var arr = new Array(元素1,元素2,...);
何時:在創建數組時,已經知道數組的元素內容
③示例
var array = [4500,5500,5000];
var array = new Array('市場部','研發部','運營部');
★先聲明空數組,再添加元素
var empArray = [ ];
empArray[0] = 'Scott';
empArray[1] = 'Smith';
混合元素類型數組
var mArray = new Array();
mArray[0] = '三國志';
mArray[2] = 195;
mArray[5] = true;
㈤訪問數組中的元素
①元素:數組中每個數據都是一個元素
②如何訪問:下標:數組中唯一標識每個元素存儲位置的序號
③特點:從0開始,連續不重復
④何時:只要訪問數組元素,只能用下標
⑤如何:數組名[i]—用法和單一變量完全一樣!
㈥數組GET操作與SET操作
①設置數組元素的值——SET
var scores = [95,88,100];
scores = [2] = 98; //將值為100的元素重新賦值為98
scores = [3] = 75; //在數組尾部添加一個新元素
下標從0開始,最大到length-1
②獲取數組元素的值——GET
var cities = new Array('南京','杭州','青島');
console.log(cities[1]); //杭州
console.log(cities[3]); //undefined
不會拋出數組下標越界異常
㈦訪問數組中的元素
①數組的length屬性
記錄了數組中理論上的元素個數length屬性的值永遠是最大下標+1
②示例1
var arr4 = new Array(10);
console.log(arr4.length); //長度為10
③示例2
var arr5 = [ ]; //長度為0
arr5[0] = 87; //長度變為1
arr5[3] = 98; //長度變為4
㈧數組的遍歷
遍歷數組元素,通常選擇for循環語句,元素的下標作循環變量
var nums = [50,90,20,10];
for(var i = 0;i <nums.length; i++){
nums[ i ] += 10;
}
下標元素從0開始,到length-1結束
㈨固定套路
①獲取數組最后一個元素
arr[arr.length-1]
②獲取倒數第n個元素的位置
arr[arr.length-n]
③數組縮容
減少arr.length的數值,會刪除結尾的多余元素
④遍歷數組
依次訪問數組中每個元素,對每個元素執行相同的操作
如:
for(var i = 0;i<arr.length;i++){
arr[ i ] //當前正在遍歷的元素
}
㈩特殊:三個不限制
①不限制數組的元素個數:長度可變
②不限制下標越界:
⑴獲取元素值:不報錯!返回undefined
⑵修改元素值:不報錯!自動在指定位置創建元素,並且自動修改length屬性為最大下標+1
⑶如果下標不連續的數組——稀疏數組
③不限制元素的數據類型
