一、建立數組:javascript
建立數組的三種方式 //-------------------------------------------------------------- var arr = [] // -->數組字面量 var arr = new Array() // --> 構造函數建立數組,()裏面是參數,一個值時表示length屬性 var arr = Array() 建立對象的三種方式 //-------------------------------------------------------------- var obj = {} //對象字面量 var obj = new Object() // --> 構造函數建立對象 var obj = Object()
數組是對象的一種特殊的形式java
var arr = [1, 2, 3, 4, 5, 6]; //數組下標值(索引值),英文index var obj = { 0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6 }
var arr = [, , , 4, 5, 6,]; // 在數組中並非每一個都有值,這種數組稱爲稀鬆數組 // ---> [ empty × 3, 4, 5, 6] 最後一個逗號後面是空的就會被截掉 // ------------------------------------------------------------- var arr1 = new Array(1,2,,3,4) var arr1 = new Array(1,2,,3,4,) var arr1 = new Array(,1,2,3,4) // 報錯,由於這裏是參數,不能爲空
二、 數組的方法: 數組的全部方法都是繼承自Array.prototype數組
案例一: 添加數組的方法 push() ,unshift();dom
//push unshift 返回的是執行了方法後數組的長度 var arr = [2, 3, 4]; arr.push(5); // --> 在數組最後一個值後加 arr.unshift(0,1) // --> 在數組的最前一位加
案例二: 刪除數組的方法 pop(),shift()函數
arr = [1, 2, 3, 4, 5, 6, 7, 8] arr.pop(); // --> 剪切數組的最後一位,沒有參數 arr.shift(); // --> 剪切數組的第一位,沒有參數
案例三:數組倒敘 reverse.net
arr = [1, 2, 3, 4, 5, 6, 7, 8] arr.reverse(); console.log(arr); //---> [8, 7, 6, 5, 4, 3, 2, 1]
案例四:arr.splice(開始剪切的位置,剪切的個數,剪切位置須要添加的新數據)prototype
arr = [1, 2, 3, 4, 5, 6, 7, 8] arr.splice(2,3,'a','b','c') console.log(arr) // ---> [1, 2, "a", "b", "c", 6, 7, 8]
案例五:sort()方法,code
// 數組排序方法 sort var arr = [856, 72, 83, 73, 43, 93, 742] arr.sort(); //--> [43, 72, 73, 742, 83, 856, 93] // 默認是按照 ASCⅡ 碼排序 按從小到大的順序 //字符串 ASCII碼比較大小,先比較第一位,接着比較第二位,以此類推 //在ASCIl碼錶中,按照ASCIl碼值從小到大排列順序是數字、英文大寫字母、英文小寫字母。數字ASCIl碼值比字母小
ASCII碼對照表: http://tool.oschina.net/commons?type=4對象
var arr = [-5,-6,1,43,3,6]; // ---> 參數是a,b // ---> 返回值是負數 a排在前面 // ---> 返回值是正數 a排在後面 // ---> 返回值是0,保持不變 // arr.sort(function(a,b){ // if( a > b){ // return 1 // }else{ // return -1 // } // }) arr.sort(function(a,b){ return a-b }) 升序排列 console.log(arr) // ---> -6 -5 1 3 6 43
隨機排序排序
// 隨機排序 //------------------------------------------------------- var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] // Math.random() 返回(0,1)之間的隨機數 arr.sort(function(a,b){ var rand = Math.random(); if(rand-0.5>0){ return 1 }else{ return -1 } }) console.log(arr) ;
案例六: arr.contact( )方法;
//arr.concat 將兩個數組進行合併 //---------------------------------------------------------------------------- var arr = [1,2,3,4,5,6,7]; var arr2 = [8,9,10]; var arr3 = arr.concat(arr2); console.log(arr3);
案例七: arr.toString()
//arr.toString() 將數組轉化爲字符串 //---------------------------------------------------------------------------- var arr = [1,2,3,4,5,6,7]; arr.toString(); console.log(arr);
案例八:arr.slice( ):
//arr.slice() 截取數組中的片斷,而且須要用一個變量來接收 //傳入一個參數,就會從對應的地方一直截取到最後 //傳入兩個參數則會截取下前面的元素,到後面的元素,可是不包含後面的元素 //---------------------------------------------------------------------------- var arr = [1,2,3,4,5,6,7]; var arr2 = arr.slice(1,3); console.log(arr2);
案例九: arr.join( ):
//arr.join() 將數組的元素放入字符串,參數就是分隔符 //---------------------------------------------------------------------------- var arr = ['a','b','c','d']; var arr2 = arr.join('___') console.log(arr2); //--> a___b___c___d
案例十:split( );
//arr.split() 將字符串變成數組 //不傳值,直接將整個字符串填到數組中, //傳空字符串,將字符串每一位分紅一個元素,填入數組 //傳入字符串中存在的,則會以這個爲分割符號,將其斷開填入數組 //傳入不相關的,則跟不傳值同樣 //能夠填入第二個參數,表明填入的長度 //---------------------------------------------------------------------------- var str = 'wo-ai-xiao-geng'; var str2 = str.split(); var str3 = str.split(''); var str4 = str.split('-'); console.log(str2); // --> ["wo-ai-xiao-geng"] console.log(str3); // --> ["w", "o", "-", "a", "i", "-", "x", "i", "a", "o", "-", "g", "e", "n", "g"] console.log(str4); // --> ["wo", "ai", "xiao", "geng"]
三、類數組是相似於數組的特殊對象
具備數組的屬性,又有對象的屬性(狹義的對象和數組),有length屬性,沒有Array的方法