1. 概述:
數組是一種數據類型(把很多數據裝入一個盒子中,用的時候取出來)字面量為[1,2,3]2. 定義:
//字面量定義法var arr1 = [1,2,3];//對象定義法var arr2 = new Array(1,2,3);//定義數組長度var arr3 = new Array(10);3. 相關操作> 獲取數組長度arr1.length> 數組中的元素賦值arr3[0] = "abc";> 如果索引值超出了數組的長度,返回值是undefined> 數組的最大索引值 = 數組的長度 - 1> 索引值從0開始4. 數組的遍歷var arr = new Array(1,2,3,4,5,6);for(var i=0; i<arr.length; i++) { console.log(arr[i]);}5. Array的內置方法① 判斷數組和轉換數組instanceof 是一個關鍵字。 判斷A是否是B類型。布爾類型值 = A instanceof B ;isArray() HTML5中新增,判斷是不是數組調用者:Array 參數:變量(被檢測值) 返回值:布爾類型布爾類型值 = Array.isArray(變量) ;toString() 把數組轉換成字符串,每一項用逗號分割字符串 = 數組.toString();valueOf() 返回數組對象本身數組本身 = 數組.valueOf();join( ) 將數組元素連接起來以構建一個字符串(數組轉為字符串)var arr = [1,2,3];//join會根據參數連接數組中的元素,默認用逗號連接console.log(arr.join());//1,2,3console.log(typeof arr.join());//Stringconsole.log(arr.join(" "));//1 2 3console.log(arr.join("-"));//1-2-3console.log(arr.join("|"));//1|2|3//無縫連接,參數用空字符串“”console.log(arr.join(""));//123② 數組增刪和換位置(原數組將被修改)棧操作(先入后出)- push( ) 在數組最后的位置添加元素(壓棧),返回數組的長度數組1改后的長度 = 數組1.push(元素1);- pop( ) 刪除并返回數組的最后一個元素(彈棧)被刪除的元素 = 數組1.pop();隊列操作(先入先出)- unshift( ) 在數組頭部插入一個元素 ,返回數組的長度數組1改后的長度 = 數組1.unshift(元素1);- shift( ) 刪除并返回數組中的第一個元素被刪除的元素 = 數組1.shift();reverse( ) 翻轉數組(原數組將被反轉,返回值也是被反轉后的數組)反轉后的數組 = 數組1.reverse();sort( ) 給數組排序,返回排序后的數組。如何排序看參數。底層是按照每個元素的首字符的Unicode編碼值來排序的。如果是對象,可以通過某個屬性的比較排列順序。首個字符的Unicode編碼值,從小到大排序。首字母相同,排第二個,以此類推。從小到大排序后的數組 = 數組1.sort(function(a,b){ return a-b;});無參:按照數組元素的首字符對應的Unicode編碼值從小到大排列數組元素。帶參:必須為函數(回調函數--callback)。函數中帶有兩個參數,代表數組中的前后元素。如果計算后(a-b),返回值為負數,a排b前面;返回值等于0不動;返回值為正數,a排b后面。③ 了解方法concat( ) 連接數組新數組 = 數組1.concat(數組2);slice( ) 從當前數組中截取一個新的數組,不影響原來的數組,參數start從0開始,end從1開始- 如果只有一個參數,截取到最后- 如果只有兩個參數,截取到后一個參數之前一個,包左不包右- 如果是負數,從后面截取- 如果兩個參數相等或前大后小,無意義,返回空字符串新數組 = 數組1.slice(索引1,索引2);splice( ) 刪除或替換當前數組的某些項目,參數start,deleteCount,options(要替換的項目) 。第一個參數是指定索引值,第二個參數是刪除的個數,第三個之后的參數是替換的內容。返回被刪除的元素。新數組 = 數組1.splice(起始索引,刪除個數,替換內容);indexOf( )、lastIndexOf( ) 獲取某個元素在數組中的索引值如果有,返回該位置的索引值;如果沒有,返回-1;數組的索引值永遠不會變,兩種方法查同一個元素的索引值是相同的。索引值 = 數組.indexOf(數組中的元素); //從前往后查索引值 = 數組.lastIndexOf(數組中的元素); //從后往前查④ 擴展的方法(ES5 中給數組擴充了一些方法)遍歷型方法:都會遍歷數組中的每一個元素,并且提供一個回調函數來處理每一個數組元素,不會修改原數組every()、filter()、forEach()、map()、some()數組/boolean/無 = 數組.every/filter/forEach/map/some( function( v, i ){ // 該函數會調用 數組.length 次 // 數組中每一個元素都會被這個函數處理一次 // 此函數帶有兩個參數 // v 表示數組元素 // i 表示數組元素的索引(下標) // 函數處理元素的辦法可以由用戶決定});every (所有):對數組中每一項運行回調函數,回調函數用于判斷數組中的每個元素是否都滿足條件,如果都滿足就返回true,如果有一個不滿足就返回false并停止遍歷;不寫默認返回false。array.every(function(item,index,arr) {});filter(過濾):對數組中每一項運行回調函數,該函數返回由結果是true的項組成的新數組,相當于一個過濾器。var arr = array.filter(function(item,index,arr) {});console.log(arr); forEach:遍歷數組。array.forEach(function(item,index,arr){});map(映射):對數組中每一項運行回調函數,返回該函數的結果組成的新數組。就是將一個數組,變成另一個數組,變化的規則由回調函數決定,將變化好的數據返回即可。var arr = array.map(function(item,index,arr) { return "/"" + item + "/"";})some(有的):對數組中每一項運行回調函數,回調函數用于判斷每一個元素是否符合某些要求,如果數組中有一個符合了,則 some 返回 true 并停止遍歷。var b = array.some(function(item,index,arr) { if (item == "ww") { return true; } return false;});⑤ 清空數組var array = [1,2,3,4,5,6];array.splice(0,array.length); //刪除數組中所有項目(法1)array.length = 0; //length屬性可以賦值,其它語言中length是只讀(法2)array = []; //直接賦為空數組,推薦(法2)
新聞熱點
疑難解答