在JavaScript中,全部的一切都是對象,爲了便於開發工做,JavaScript提供了處理字符串、數學運算、日期和時間、正則表達式和數值等一系列的內置對象,它們都聽從ECMAScript1.0規範,所以在全部平臺下這些對象的功能和表現都是同樣的。html
數組是一種具備相同類型值的集合,它的每個值稱爲數組的一個元素。數組用於在內存中存儲大量相同類型的數據,能夠經過數組的名稱和下標來訪問數組中的元素。正則表達式
數組的下標也成爲索引值,有兩種類型的索引值:非負整數和字符串索引值。使用字符串索引值的數組又稱爲關聯數組。數組是JavaScript的一種內置對象。編程
和其它變量同樣,數組在啊使用以前須要聲明,即建立數組對象。聲明數組的語法有三種形式:數組
var arr = new Array(); var arr = new Array(n); var arr = new Array(e0,e1,e2,...e(m));
第一種聲明形式聲明瞭一個空的數組,它的元素個數爲0;第二種聲明形式聲明瞭一個有n個元素的數組,但每個元素的值尚未定義;第三種聲明形式聲明瞭有m個元素的數組,它的各個值依次爲e0,e1,e2,...e(m)。例如:數據結構
var arr1 = new Array(); //建立一個空數組 var arr2 = new Array(100); //建立有100個元素的數組 var arr3 = new Array("red","blue","green",1,2,3);//建立有6個值得數組
JavaScript的數組是動態數組,在聲明數組的時候,不管是否值得了數組的元素個數,均可以根據須要調整元素的數量。JavaScript按須要分配內存,動態擴展和壓縮數組。數組元素經過下標來訪問,下標放在放括號[]
中。當數組下標爲整數時,下標從0開始計數。編程語言
和其它編程語言不一樣的是,JavaScript數組能夠存儲任何類型的的值,也就是說,數組中第一個元素能夠存儲數值,第二個元素能夠存儲字符串類型的值,第三個元素能夠存儲對象等等。編輯器
在JavaScript中,能夠使用字符串來做爲數組的下標來訪問數組。經過字符串下標來訪問數組稱爲關聯數組。字符串下標一般稱爲鍵。下面是一個例子:函數
var states = new Array(); states["京"] = "北京市"; states["翼"] = "河北省"; states["豫"] = "河南省"; states["粵"] = "廣東省"; states["閩"] = "福建省";
數組是JavaScript中的一個對象,它有一組屬性和方法。下表是數組的屬性:prototype
屬性 | 含義 |
constructor | 引用數組對象的構造函數 |
length | 返回數組元素的個數。若是在建立數組時指定了數組的長度,那麼不管數組元素中是否超出了實際數據,該屬性的值都是這個指定的長度值 |
prototype | 用於在定義數組時添加新的屬性和方法。Prototype是數組對象的靜態屬性。 |
其中最經常使用的是length
屬性,它一般用於在for
循環中遍歷數組時使用。code
數組提供了12個有用的方法,利用這些方法能夠使用數組實現棧操做、數組元素排序、顛倒數組元素、將數值拼接爲一個字符串等。下表中列出了這些方法:
方法 | 含義 |
cancat(value,...) | 將兩個數組合併爲一個新的數組,參數指定的數組的數組元素放在後面。該方法的參數能夠是一個數組,也能夠是一組值。 |
join(separator) | 使用指定的分隔符(separator)將數組元素依次拼接起來,造成一個字符串返回。 |
push(value,...) | 在數組末尾增長一個活多個數組元素(增長的元素數量與參數個數相同),並返回增長元素後的數組長度。該操做至關於數據結構中的入棧操做。 |
reverse() | 顛倒數組中元素的次序。例如,若是數組中各個元素的值依次爲1/2/3/4/5,那麼執行reverse()方法以後,數組的值依次爲五、四、三、二、1。 |
shift() | 刪除數組的第一個元素,並返回其值,數組的長度減小1.該操做至關於數據結構中的出隊列操做。 |
slice(start,end) | 從現有數組中提取指定個數的數據元素,造成一個新的數組。所提取元素的下標從start開始,到end結束,但不包括end。 |
sort(orderfunc) | 將數組元素排序。參數orderfunc可選。省略該參數時,按字母順序或漢字的拼音方式排序。能夠使用orderfunc來指定排序方式。orderfunc爲排序函數的名稱,該函數應該使用兩個參數,並返回一個整數值。返回值的要求是:當第一個參數大於第二個參數時,返回值大於0;當第一個參數等於第二個參數時,返回值等於0;當第一個參數小於第二個參數時,返回值小於0。 |
splice(start,delteCount,value...) | 從start指定的位置開始,刪除delteCount個數組元素,而後在刪除位置前面添加於value值個數相同的數組元素,並以此將其值設置爲value參數指定的值。該函數的功能至關於文本編輯器中的替換功能。 |
toLocaleString() | 返回數組的本地化字符串表示。 |
toString() | 返回數組的字符串表示。 |
unshift(value,...) | 在數組的開始位置增長一些數組元素,增長的數組元素的數量與value參數的個數相同,並依次使用參數value對各數組元素賦值。 |
下面是上面經常使用函數的一些應用示例。
concat()方法應用示例
concat()
方法將兩個數組合併爲一個新的數組。
var arr1 = new Array("紅色","藍色","綠色"); var arr2 = new Array("粉紅色","紫色"); var arr3 = arr1.concat(arr2); document.write(arr3); //合併後的數組arr3爲:紅色,藍色,綠色,粉紅色,紫色
join()方法應用示例
join()
方法使用指定的分隔符將數組元素拼接爲一個字符串返回。
var arr1 = new Array("紅色","藍色","綠色"); var arr2 = new Array("粉紅色","紫色"); var arr3 = arr1.concat(arr2); document.write(arr3.join("-"));//合併後的數組arr3調用join()方法的結果爲:紅色-藍色-綠色-粉紅色-紫色
push()方法應用示例
push()
方法在數組末尾添加一個或多個元素。
var arr = new Array("紅色","藍色","綠色"); arr.push("粉紅色","紫色"); document.write(arr); //調用push方法後數組的值爲:紅色,藍色,綠色,粉紅色,紫色
pop()方法應用示例
pop()
方法從數組末尾刪除一個元素,並返回其值。
var arr = new Array("紅色","藍色","綠色"); var value = arr.pop(); document.write(arr); //調用pop方法後數組的值爲:紅色,藍色 alert("返回的值爲:"+value); //返回的值爲:綠色
shift()方法應用示例
shift()
方法從刪除數組中的第一個元素,並返回其值。
var arr = new Array("紅色","藍色","綠色"); var value = arr.shift(); document.write(arr); //調用shift方法後數組的值爲:藍色,綠色 alert("返回的值爲:"+value); //返回的值爲:紅色
unshift()方法應用示例
unshift()
方法在數組第一個元素前面增長一些數組元素。
var arr = new Array("紅色","藍色","綠色"); arr.unshift("粉紅色","紫色"); document.write(arr); //調用unshift方法後數組的值爲:粉紅色,紫色,紅色,藍色,綠色
sort()方法應用示例
sort()
方法排序數組中的元素,既能夠使用默認的方法,也能夠自定義排序方法。
sort() 默認排序
var arr = new Array("2","11","1","25","12","90","36","28","100"); arr.sort(); document.write(arr); //調用默認sort方法後數組的值爲:1,100,11,12,2,25,28,36,90
上面使用的是默認的排序很是,默認方式下,數組以ASCII值的大小來進行排序。咱們能夠自定義排序的方法,若是須要按照數字的大小來排序,能夠像下面這樣:
function mysortfunc(str1,str2){ return parseInt(str1) - parseInt(str2); } var arr = new Array("2","11","1","25","12","90","36","28","100"); arr.sort(mysortfunc); document.write(arr); //調用自定義sort方法後數組的值爲:1,2,11,12,25,28,36,90,100
reverse()方法應用示例
reverse()
方法顛倒數組中的全部元素。
var arr = new Array("2","11","1","25","12","90","36","28","100"); arr.reverse(); document.write(arr); //調用reverse方法後數組的值爲:100,28,36,90,12,25,1,11,2
slice()方法應用示例
slice()
方法將一個數組中的部分元素複製到一個新的數組中。它的第一個參數指定從哪一個下標開始複製數組,第二個參數指定複製結束的數組元素下標,slice()
方法不復制第二個參數指定的元素。
var arr = new Array("Sun","Mon","Tues","Wed","Thurs","Fri","Sat"); var sliceArr = arr.slice(1,3); //從下標1開始,截取到下標爲3的元素,不包括下標爲3的元素 document.write(sliceArr); //調用slice方法後數組的值爲:Mon,Tues
splice()方法應用示例
splice()
方法從指定的數組下標開始刪除指定個數元素,而後能夠使用一組新的數組元素代替被刪除的元素。該方法第一個參數指定開始的數組下標,第二個參數指定要刪除的元素個數,後面的參數爲要插入的元素。
var arr = new Array("Sun","Mon","Tues","Wed","Thurs","Fri","Sat"); arr.splice(1,3,"星期一","星期二","星期三");//從下標1開始,刪除3個元素,並將後面參數指定的元素插入到刪除的位置 document.write(arr); //調用slice方法後數組的值爲:Sun,星期一,星期二,星期三,Thurs,Fri,Sat