JS數組-第一腳,JS數組-第
數組定義:
var arr = [12,5,8,9];var arr = new Array(12,5,8,9);
數組的length屬性:
1. length即可以擷取數組的長度,又可以設定數組的長度
2. 和其他語言不同的是js的數組的長度是動態改變的,js數組中可以存放任意類型資料,但是最好只存放一種類型的資料
1. 方法push( )向數組中追加元素,返回值為新數組的長度。
<script> var arr = [12,5,8,9]; var res = arr.push(3); alert(res); // 傳回值為數組的長度5</script>
2. 方法pop()從數組的尾部移除一個元素,返回值為移除的元素
<script> var arr = [12,5,8,9]; var res = arr.pop(); alert(res); // 傳回值為移除的元素9</script>
3. 方法shift()從數組的頭部移除一個元素,返回值為移除的元素
<script> var arr = [12,5,8,9]; var res = arr.shift(); alert(res); // 傳回值為移除的元素12</script>
4. 方法unshift()從數組頭部插入元素,返回值為新數組的長度
<script> var arr = [12,5,8,9]; var res = arr.unshift(3); alert(res); // 返回數組的長度5</script>
5. 方法slice()用來截取數組的,返回值為截取的值(左閉右開區間)
<script> var arr = [12,5,8,9]; //arr.slice(1,3)的意思是:截取下標 (大於等於1,小於3)的值 var res = arr.slice(1,3); alert(res); // 傳回值為5,8 alert(arr); // 返回12,5,8,9 可見slice方法不運算元組本身</script>
6. 方法splice()用於向數組中添加元素,也用於從數組中刪除元素;返回值為被刪除的元素
var arr = [12,5,8,9];var res = arr.splice(1,3);// 從下標為1的值開始,刪除3個元素alert(res); // 傳回值為刪除的元素:5,8,9alert(arr); // 返回12 可見splice方法會運算元組本身
var arr = [12,5,8,9];var res = arr.splice(1,3,44,55);// 從下標為1的值開始,刪除3個元素,然後在添加2個元素,44,55alert(res); // 傳回值為刪除的元素:5,8,9alert(arr); // 返回12,44,55
var arr = [12,5,8,9];var res = arr.splice(1,0,44,55);// 從下標為1的值開始,刪除0個元素(不刪除元素),然後在從下標為1的位置添加2個元素,44,55alert(res); // 傳回值為刪除的元素:為空白alert(arr); // 返回12,44,55,8,9
7. 方法concat()用於串連兩個或多個數組,返回值為新數組
var arr1 = [12,5,8,9];var arr2 = [33,44];var res = arr1.concat(arr2);alert(res); // 12,5,8,9,33,44
串連多個數組
var arr1 = [12,5,8,9];var arr2 = [33,44];var arr3 =['A','B'];var res = arr1.concat(arr2,arr3);alert(res); // 列印出12,5,8,9,33,44,A,Balert(arr1);// 列印12,5,8,9 ,可見concat方法不運算元組本身alert(arr3);// 列印 A,B
8. 方法join(分隔字元):用分隔字元來串連數組中的每個元素,返回串連後結果(字串形式)
var arr1 = [12,5,8,9];var res = arr1.join('*');alert(res); // 12*5*8*9alert(arr1);// 列印12,5,8,9,可見join方法也不運算元組本身
補充:
//js中字串有個split的用法:用來將字串分割為數組 var str='12*5*8*9'; var res = str.split('*');//用字元*來分割 alert(res);
9. 方法sort()對數組元素進行正序排序(從小到大),預設是按ASCII字母表的大小順序進行排序(注意:對數字進行排序的時候並不是按照數位大小進行排序的)
var arr = [12,5,8,9,10,1];var res = arr.sort(arr);alert(res); //列印結果1,10,12,5,8,9,並不是我們想象的1,5,8,9,10,12alert(arr);// 列印1,10,12,5,8,9 ,可見sort方法運算元組本身
為了清楚理解
sort的排序原理
var arr = [12,5,'a',8,'A','D',9,10,1,'c'];var res = arr.sort(arr);alert(res); //1,10,12,5,8,9,A,D,a,c
ASCII
表 大小順序
1)數字0~9比字母要小。如"7"<"F";
2)數字0比數字9要小,並按0到9順序遞增。如"3"<"8"
3)字母A比字母Z要小,並按A到Z順序遞增。如"A"<"Z","a"<"z"
4)大寫字母比小寫字母要小。如"A"<"a","D"<"a"。
如果想通過sort實現對數字進行大小的比較,我們需要自訂一個“比較函數”作為參數傳給sort。例如
function compare(n1,n2){ // 自訂比較的函數 if(n1<n2){ return -1; } else if(n1>n2){ return 1; } else{ return 0; }}var arr = [12,5,8,9,10,1];var res = arr.sort(compare);//通過自訂的函數對 數字進行正序排序alert(res); // 列印 1,5,8,9,10,12
// 簡單的寫法 function compare(n1,n2){ return n1 -n2;// 從小到大排序 } var arr = [12,5,8,9,10,1]; var res = arr.sort(compare);//通過自訂的函數對 數字進行正序排序 alert(res); // 列印 1,5,8,9,10,12
如果要實現
從大到小排序,只需要return n2-n1
function compare(n1,n2){ return n2-n1;//從大到小排列}
10. 方法revers用來對數組進行倒敘排序(排序的原則是顛倒數組元素的位置),簡單來說就是把數組裡的元素翻個個。
var arr = [12,5,8,9,10,2];var res = arr.reverse();alert(res); //列印2.10,9,8,5,12alert(arr);//列印2.10,9,8,5,12 可見reverse方法運算元組本身
//字串 var arr = ['Zhangsan','Lisi','Wangwu','Zhaoliu']; var res = arr.reverse(); alert(res); //列印 Zhaoliu.Wangwu,Lisi,Zhangsan