1、創(chuàng)建數(shù)組:
(1) var arr = [1,2,3];或者 arr = [ ]
(2) var arr = new Array("red","blue");
(3)var arr? =new Array(3);
2、數(shù)組的長度:arr.length
3、檢測數(shù)組
(1)arr instanceof Array
特點(diǎn):該方法限定必須在一個(gè)網(wǎng)頁或者一個(gè)全局作用域。如果一個(gè)網(wǎng)頁有多個(gè)框架,那么該網(wǎng)頁就有多個(gè)全局環(huán)境,每個(gè)執(zhí)行環(huán)境的Array構(gòu)造函數(shù)不同。如果把一個(gè)數(shù)組從一個(gè)框架傳入另一個(gè)框架,則傳入的數(shù)組與在該框架中創(chuàng)建的數(shù)組具有不同的構(gòu)造函數(shù)。
(2)Array.isArray(arr)
特點(diǎn):該方法目的就是確定某個(gè)值到底是不是數(shù)組,不管它在哪個(gè)全局執(zhí)行環(huán)境。
4、數(shù)組轉(zhuǎn)換方法
(1)arr.valueOf()? 返回?cái)?shù)組本身
(2)arr.toString()? 返回?cái)?shù)組的每項(xiàng)的字符串形式拼接而成的一個(gè)以逗號(hào)分隔的字符串。
5、數(shù)組操作
(1)棧:數(shù)組尾部添加,尾部刪除。(原數(shù)組改變)
arr.push("black")? ? arr.pop()
(2)數(shù)組:尾部添加,頭部書刪除。
arr.push("red","black")? ? arr.shift()
(3)數(shù)組頭部添加
arr.unshift("red","black")
6、數(shù)組排序
(1)arr.reverse()? ?重新排序
(2)arr.sort();
特點(diǎn):將數(shù)組的每一項(xiàng)調(diào)用toString()方法,然后進(jìn)行排序。
因此:為了確保大小順序排序,
sort可以接受一個(gè)函數(shù)作為參數(shù),比較函數(shù)接受兩個(gè)參數(shù)
如果第一個(gè)參數(shù)應(yīng)該位于第二個(gè)參數(shù)之前,則返回負(fù)數(shù);如果兩個(gè)數(shù)相等,則返回0;如果第二個(gè)參數(shù)應(yīng)該位于第一個(gè)參數(shù)之前,則返回正數(shù)。
7、操作方法
(1)slice()? 不改變數(shù)組的長度
(2)splice()? 改變數(shù)組的長度
(3) indexOf()? ?
arr.indexOf("red")? 返回red的索引
? (4)lastIndexOf()
8、迭代
(1)every() 對數(shù)組的每一項(xiàng)運(yùn)行該給定函數(shù),當(dāng)該函數(shù)的每一項(xiàng)都返回true,則返回true。
? ? ? ? ?arr.every(function(item, index, array){ return item>3 })
(2)some() 對數(shù)組的每一項(xiàng)運(yùn)行該函數(shù),只要該函數(shù)的一項(xiàng)返回true,則返回true。
(3) filter() 對數(shù)組的每一項(xiàng)運(yùn)行該函數(shù),返回該函數(shù)會(huì)返回true的項(xiàng)組成的數(shù)組。
(4) forEach() 對數(shù)組的每一項(xiàng)運(yùn)行該函數(shù),沒有返回值
(5) map() 對數(shù)組的每一項(xiàng)運(yùn)行該函數(shù),返回運(yùn)行該函數(shù)的結(jié)果組成的額數(shù)組。
9、歸并 reduce() 和reduceRight()
arr.reduce(function(pre,cur,index,array){ return pre+cur })