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