數組的創建及length屬性
<script type="text/javascript" charset="utf-8">// 數組創建方式一,此種方式寫的時候比較麻煩var arr=new Array();// 數組創建方式二var arr= [1,2,3,4,true,'str',new Date()];console.log("arr.length:"+arr.length);console.log(arr);arr.length=5; // 指定組數長度后,數組長度以外的元素則會被裁減掉console.log("arr.length:"+arr.length+" ,arr:"+arr); console.log(arr[6]);/************************* 運行結果 *************************arr.length:7[1, 2, 3, 4, true, "str", Date {Thu Oct 15 2015 00:08:43 GMT+0800}]arr.length:5 ,arr:1,2,3,4,trueundefined**********************************************************/</script>
注意:數組的使用時注意如果指定了數據的長度的,則數組長度外的元素會被裁減掉(內存中被干掉)。
數組的 push 和 pop 方法
<script type="text/javascript" charset="utf-8">/*** 數組的 push 和 pop 方法* 和數據結構中的棧(先進后出)的操作一樣,推入,壓出*/var arr=[];arr.push(4); //推入arr.push(3,2);arr.push(2);var returnVal=arr.push(true); //返回值為新數組的長度arr.push(new Date())console.log(returnVal);console.log("arr.length: "+arr.length);console.log("arr: "+arr);arr.pop(); // 從數組尾部刪除一個元素,返回值為移出的元素值console.log("arr.length: "+arr.length);console.log("arr: "+arr);/************************* 運行結果 *************************5arr.length: 6arr: 4,3,2,2,true,Thu Oct 15 2015 00:14:23 GMT+0800arr.length: 5arr: 4,3,2,2,true**********************************************************/</script>
注:pop() 和 push()對數據的操作是從數組的后面進行操作,與 shift () 和unshift() 操作位置正好相反(在數組的前面前面進行相應的移出和插入操作)。
數組的 shift 和 unshift 方法
<script type="text/javascript" charset="utf-8">/*** shift 和 unshift 方法* shift: 從數組前移出元素* unshift: 從數組前插入*/var arr=[3,5,7,true,new Date(),undefined,null];console.log("[操作前]: "+arr);var r1=arr.shift();console.log(arr);console.log(r1);var r2=arr.unshift(0);console.log(arr);console.log(r1);/************************* 運行結果 *************************[操作前]: 3,5,7,true,Thu Oct 15 2015 00:20:43 GMT+0800,,[5, 7, true, Date {Thu Oct 15 2015 00:20:43 GMT+0800}, undefined, null]3[0, 5, 7, true, Date {Thu Oct 15 2015 00:20:43 GMT+0800}, undefined, null]3**********************************************************/</script>
數組的 splice(拼接、接合) 和 slice方法
<script type="text/javascript" charset="utf-8">/*** splice(拼接、接合) 和 slice(切開、切下)方法* * splice(arg1,arg2,arg3...): 從arg1處截掉arg2個元素,再將arg3...之后的元素追加在截斷的位置* arg1:操作的起始位置,從0開始* arg2:截掉元素個數* arg3:追加的元素* ... :追加的元素* 可以理解為子元素的替換,將arg1處開始后連續arg2個元素替換成 arg3、arg4、、、* * slice(startIndex,endIndex):截取并返回數組中索引從startIndex 到 endIndex的元素(左閉右開區間,不影響別操作的對象),類似于高級語言中的字符串求子串;* * 區別:splice 操作會影響操作的對象,slice則不會影響操作的對象* */var arr=[0,1,2,3,4,5,6,7,8];console.log("[操作前]: "+arr);var r1=arr.splice(1,2,33,44,55,88,99); //返回值為截掉的元素console.log("[操作返回值]: "+r1); //Array [ 1, 2 ]console.log("[操作后]: "+arr); //Array [ 0, 33, 44, 55, 88, 99, 3, 4, 5, 6, 7, 8 ]var arr=[0,1,2,3,4,5,6,7,8];console.log("[操作前]: "+arr);var r2=arr.splice(2,4); //從第2個索引位置開始截去4個元素,截取范圍是左閉右開區間console.log("[操作返回值]: "+r2); //Array [ 2, 3, 4, 5 ]console.log(arr); //Array [ 0, 1, 6, 7, 8 ]var arr=[0,1,2,3,4,5,6];console.log("[操作前]: "+arr); //[操作前]: 0,1,2,3,4,5,6var result=arr.slice(2,5); //索引從2到5左閉右開區間的元素值,對被操作的對象無影響console.log("[操作返回值]: "+result); //[操作返回值]: 2,3,4console.log("[操作后]: "+arr); //[操作后]: 0,1,2,3,4,5,6/************************* 運行結果 *************************[操作前]: 0,1,2,3,4,5,6,7,8[操作返回值]: 1,2[操作后]: 0,33,44,55,88,99,3,4,5,6,7,8[操作前]: 0,1,2,3,4,5,6,7,8[操作返回值]: 2,3,4,5[0, 1, 6, 7, 8][操作前]: 0,1,2,3,4,5,6[操作返回值]: 2,3,4[操作后]: 0,1,2,3,4,5,6**********************************************************/</script>
數組的 concat 和 join方法
<script type="text/javascript" charset="utf-8"> /*** concat : 數組拼接* 注意:concat方法并不影響被操作對象本身* * join : 數組元素之間加入相應的連接元素然后返回最終的結果* 注意:join 方法也不影響被操作對象本身* */var arr1=[1,2,3];var arr2=[4,5,6];var result = arr1.concat(arr2);console.log("arr1: "+arr1); //arr1: 1,2,3console.log("arr2: "+arr2); //arr2: 4,5,6console.log("arr1.concat(arr2): "+result); //arr1.concat(arr2): 1,2,3,4,5,6var arr1=[1,2,3];var result = arr1.join('-');console.log("arr1: "+arr1); //arr1: 1,2,3console.log("arr1.join('-'): "+result); //arr1.concat(arr2): 1-2-3console.log("arr1[2]: "+arr1[2]); //3/************************* 運行結果 *************************arr1: 1,2,3arr2: 4,5,6arr1.concat(arr2): 1,2,3,4,5,6arr1: 1,2,3arr1.join('-'): 1-2-3arr1[2]: 3**********************************************************/</script>
數組的 sort 方法
<script type="text/javascript" charset="utf-8"> /*** sort(): 將數組類元素進行排序,排序方式是類似字典排序的方式來進行相應的排序,而不是按數學的由小到大排序* 注意:排序后影響被操作對象*/var arr1=[1,7,5,3,10];console.log("[操作前]:"+arr1); //[操作前]:1,7,5,3,10var result1=arr1.sort();console.log("[操作結果]:"+result1); //[操作結果]:1,10,3,5,7console.log("[操作后]:"+arr1); //[操作后]:1,10,3,5,7/************************* 運行結果 *************************[操作前]:1,7,5,3,10[操作結果]:1,10,3,5,7[操作后]:1,10,3,5,7**********************************************************/</script>
數組的 reverse方法
<script type="text/javascript" charset="utf-8"> /*** reverse(): 是將數組順序顛倒過來*/var arr2=[5,1,8,3,5]; console.log("[操作前]:"+arr2);var result2=arr2.reverse(); //[操作前]:5,1,8,3,5console.log("[操作結果]:"+result2); //[操作結果]:5,3,8,1,5console.log("[操作后]:"+arr2); //[操作后]:5,3,8,1,5/************************* 運行結果 *************************[操作前]:5,1,8,3,5[操作結果]:5,3,8,1,5[操作后]:5,3,8,1,5**********************************************************/</script>
案例一:實現對數組的數學排序
<script type="text/javascript" charset="utf-8"> /*** 數學排序* 實現:對sort()方法給指定一個排序方式即可*/var arr1=[1,7,5,3,10];// 比較器function compare(var1,var2){if(var1<var2){return -1;}else if(var1>var2){return 1;}else{return 0;}}arr1.sort(compare);console.log(arr1); // Array [ 1, 3, 5, 7, 10 ]/************************* 運行結果 *************************[1, 3, 5, 7, 10]**********************************************************/</script>
以上代碼的運行環境均是Firfox,輸出結果到console中。