數(shù)組
一、相關(guān)概念
1、數(shù)組是值的有序集合。
2、每個值叫做一個元素
3、每個元素在數(shù)組中有一個位置,以數(shù)字表示。稱為索引(下標)。
二、特點
1、數(shù)組的元素可以是任何類型
2、數(shù)組索引從0開始,最大為2^32-2? 4294967294個元素
三、創(chuàng)建數(shù)組
1、使用數(shù)組直接量[]
? ? ? ? var arr = [1,2,3,];
2、使用構(gòu)造函數(shù)
? ? ? ? var arr = new Array(10);10個元素
? ? ? ? var arr = new Array('a','b','c');
四、數(shù)組的長度
? ? ? ? arr.length;
? ? ? ? length屬性只計算非負整數(shù)的索引
五、數(shù)組元素的訪問和修改
? ? ? ? 使用[]
? ? ? ? 數(shù)字類型的字符串 也可以訪問數(shù)組元素
小實例:嘗試將數(shù)組中的內(nèi)容放入新的數(shù)組中
六、稀疏數(shù)組(稀疏數(shù)組就是不連續(xù)索引的數(shù)組)
1、var arr = new Array(3); -- 是稀疏數(shù)組
2、var arr = [,,]; -- 是稀疏數(shù)組
3、var arr = [1,2];arr[10]=100; -- 是稀疏數(shù)組
4、使用delete刪除一個元素 得到稀疏數(shù)組
小實例:嘗試將稀疏數(shù)組變成不稀疏
七、數(shù)組元素的添加
1、為新索引賦值 arr[4]=2;
2、利用數(shù)組長度在數(shù)組尾部插入新元素 arr[arr.length]=5;
3、push() 在尾部加入新元素 arr.push(‘a(chǎn)bc’);
4、unshift()在前面加入一個新元素 arr.unshift(‘a(chǎn)bc’);
八、數(shù)組的刪除
1、刪除數(shù)組后面的一個元素 delete()不推薦--產(chǎn)生稀疏數(shù)組
2、pop() 刪除數(shù)組最后一個元素 arr.pop();
3、shift() 刪除數(shù)組第一個元素 arr.shift();
練習(xí)題:自定義一個函數(shù)驗證元素是否在數(shù)組中
九、判斷是否數(shù)組
typeof []; 無法進行判斷
ESMA5定義新的方法用來判斷是否數(shù)組: Array.isArray([]);
十、搜索數(shù)組是否具有的元素
arr.indexOf();
? ? ? ? 如果存在返回元素位置
? ? ? ? 如果不存在返回-1
十一、數(shù)組的遍歷
1、使用for循環(huán)遍歷 for(var i = 0; i < arr.length;i++){ console.log(arr[i]); }
2、使用for/in循環(huán) for(var i in arr){ console.log(arr[i]); }
3、注意:遍歷稀疏數(shù)組 和 特殊下標數(shù)組時的區(qū)別
4、使用forEach(); 傳入匿名函數(shù),低版本IE不支持
十二、數(shù)組的方法
1、join()把數(shù)組的元素拼接成字符串 var message = arr.join(‘,’);
2、concat() 合并多個數(shù)組
? ? ? ? var message = arr.concat([12,43],[4,35,3]);
? ? ? ? var message = arr.concat(1,2,3);
? ? ? ? var message = arr.concat(1,2,[4,,5,[6,,7]]);
3、slice() 截取數(shù)組中的一部分(不破壞原數(shù)組),返回新的數(shù)組
? ? ? ? var arr = list.slice(2);? 取出從下標2到后面的所有元素
? ? ? ? var arr = list.slice(2,4); 取出從下標2到下標4(不含4)的元素>
4、splice() 刪除、替換、添加、 破壞原數(shù)組 返回刪除的內(nèi)容
? ? ? ? var new_arr = list.splice(2);? 下標2以后的元素
? ? ? ? var new_arr = list.splice(2,2); 下標2以后的兩個元素
? ? ? ? ? ? ? ? 在指定位置添加新的元素
? ? ? ? ? ? ? ? ? ? ? ? var arr = [3,454,435,343];
? ? ? ? ? ? ? ? ? ? ? ? arr.splice(2,0,’abc’);(在435的位置前添加一個abc)
? ? ? ? ? ? ? ? 替換指定位置的元素
? ? ? ? ? ? ? ? ? ? ? ? var arr=[1,2,3,4];arr.splice(2,1,’abc’);(將3替換成abc)
實例:使用 splice()方法處理稀疏數(shù)組
5、reverse() 數(shù)組反轉(zhuǎn) 改變原數(shù)組
6、sort(); 數(shù)組排序,必須使用排序函數(shù) list=[1,334,32,324]; list.sort(function(a,b){return a-b;});
7、toString() 把數(shù)組轉(zhuǎn)換為字符串
8、toLocaleString()把數(shù)組轉(zhuǎn)換為本地字符串(不常用)
練習(xí):
自定義求數(shù)組最大值的函數(shù)
自定義求數(shù)組最小值的函數(shù)
冒泡排序