JavaScript核心對象-數組對象

在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
相關文章
相關標籤/搜索