Array簡介
Array數(shù)組的每一項(xiàng)可以保存任何類型的數(shù)據(jù),可以用數(shù)組的第一個位置保存字符串,第二個位置保存數(shù)值,第三個位置保存數(shù)值,以此類推。
創(chuàng)建Array的方式
- 使用構(gòu)造器創(chuàng)建
var colors = new Array();
var colors = new Array(20)
var colors = new Array("red","blue","yellow") - 使用數(shù)組字面量創(chuàng)建
var colors = ["red","blue","yellow"];
var values = [1,2,] //不要這樣創(chuàng)建
在IE中values會成為一個包含3個項(xiàng)的且每項(xiàng)的值分別為1,2,undefined的數(shù)組,其他瀏覽器中會成為一個包含2項(xiàng)且值分別為1和2的數(shù)組。
與對象一樣,在使用數(shù)組字面量創(chuàng)建數(shù)組時,也會調(diào)用Array構(gòu)造函數(shù)。
讀取和設(shè)置元素值
var colors = ["red","blue","green"];
alert(colors[0]); //顯示第一項(xiàng)
colors[2] = "black"; // 修改第三項(xiàng)
colors[3] ="brown" //增加第四項(xiàng)
方括號中的索引表示要訪問的值,索引小于數(shù)組中的項(xiàng)數(shù),則返回對應(yīng)的值。
數(shù)組的length屬性
length屬性不是只讀的,可以通過它從數(shù)組的末尾移除項(xiàng)或添加新項(xiàng)。
var colors = ["red","blue","green"]
colors.length = 2;
alert(colors[2]); //undefined
檢測數(shù)組
- instanceof
instanceof只有一個全局執(zhí)行環(huán)境
-Array.isArray()
棧方法
- push()
可以接受任意數(shù)量的參數(shù),把它們逐個添加到數(shù)組末尾,并返回修改后數(shù)組的長度 - pop()
從數(shù)組末尾移除最后一項(xiàng),減少數(shù)組的length,并返回移除的項(xiàng)
隊(duì)列方法
模擬隊(duì)列只需從一個數(shù)組前段取得項(xiàng)
- shift()
移除數(shù)組中的第一個項(xiàng),并返回該項(xiàng),同時數(shù)組長度減1. - unshift()
能夠在數(shù)組前段添加任意個項(xiàng)并返回?cái)?shù)組新長度
重排序方法
- reverse()
- sort()
sort可以接收一個比較函數(shù)作為參數(shù),以便我們指定哪個值位于哪個值的前面
function(value1,value2){
if(value1<value2){
return -1;
}
else if(value1>value2){
return 1;
}else{
return 0;
}
var values = [0,1,5,10,15]
values.sort(compare);
alert(values) // 0,1,5,10,15
操作方法
- concat()
可以基于當(dāng)前數(shù)組的所有項(xiàng)創(chuàng)建一個新數(shù)組
var colors = ["red","green","blue"]
var colors2 = colors.concat["yellow",["black","brown"]);
alert(colors); //red,green,blue,yellow,black,brown
slice()
它能夠基于當(dāng)前數(shù)組中的一個或多個項(xiàng)創(chuàng)建一個新數(shù)組。slice()方法可以接受一個或兩個參數(shù),即要返回的起始和結(jié)束位置。
在只有一個參數(shù)的情況下,slice只返回從參數(shù)指定位置開始到當(dāng)前數(shù)組末尾的所有項(xiàng)。
如果有兩個參數(shù),slice返回起始和結(jié)束位置之間的項(xiàng),但不包括結(jié)束位置的項(xiàng)。splice()
向數(shù)組的中部插入項(xiàng)indexOf()
從數(shù)組的開頭開始向后查找lastIndexOf()從數(shù)組的末尾開始查找
迭代方法
- every()
對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)每一項(xiàng)都返回true,則返回true
-some()
對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對任意項(xiàng)返回true,則返回true。
forEach()對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),沒有返回值
-map()
-filter()