javascript陣列和物件的區別

antzone發表於2017-04-10

在javascript中,陣列和物件都可以表示資料集合。

但是它們兩者還是有很大的區別的,下面就做一下介紹。

[JavaScript] 純文字檢視 複製程式碼
var arr = ["螞蟻部落", "softwhy.com", 3, "青島市南區"];
var obj = {
  0: "螞蟻部落",
  1: "softwhy.com",
  2: 3,
  3:"青島市南區"
}
console.log(arr[0]);
console.log(obj[0]);

上面是一個陣列和物件,它們兩個訪問方式非常的類似。

陣列和物件的區別:

陣列和物件雖然都是集合,但是區別還是很大。

(1).陣列是有序集合,物件是無序集合。

(2).陣列的資料沒有名稱,需要通過索引值訪問,物件的資料是有名稱的也就是key。

關聯陣列:

在很多語言中都有關聯陣列這個概念,陣列的資料是有名稱的。

看如下程式碼例項:

[JavaScript] 純文字檢視 複製程式碼
var arr=[]
arr["webName"] = "螞蟻部落";
arr["age"] = 3;
console.log(arr["webName"]);

上面的程式碼貌似給陣列新增了兩個元素,難道真是這樣嗎,程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
var arr=[]
arr["webName"] = "螞蟻部落";
arr["age"] = 3;
console.log(arr.length);

上面的程式碼顯示,陣列的長度依然是0。這就是關聯陣列,其實我們可以認為是為arr物件新增的屬性而已,並不是真正新增的和索引對應的元素,上面的方式可以理解為下面的程式碼:

[JavaScript] 純文字檢視 複製程式碼
var arr=[]
arr.webName = "螞蟻部落";
arr.age = 3;
console.log(arr["webName"]);

相關文章