JavaScript中的索引數組、關聯數組和靜態數組、動態數組的分類講

數組分類:

JavaScript中的索引數組、關聯數組和靜態數組、動態數組的分類講

1、從數組的下標分爲索引數組、關聯數組

複製代碼 代碼如下:

/* 索引數組,即通常情況下所說的數組 */

var ary1 = [1,3,5,8];

//按索引去取數組元素,從0開始(當然某些語言實現從1開始)

//索引實際上就是序數,一個整型數字

alert(ary1[0]);

alert(ary1[1]);

alert(ary1[2]);

alert(ary1[3]);

/* 關聯數組,指以非序數類型爲下標來存取的數組 python中稱爲字典 */

var ary2 = {};

//存取時,以非序數(數字),這裏是字符串

ary2["one"] = 1;

ary2["two"] = 2;

ary2["thr"] = 3;

ary2["fou"] = 4;

2、從對數據的存儲分爲靜態數組、動態數組

複製代碼 代碼如下:

// java中的靜態數組

// 定義後數組的長度固定了不能改變,按索引取數組元素

Int[] ary1 = {1,3,6,9};

// java中的動態數組

// java中的ArrayList實現是以Array爲基礎的,這裏說動態數組是廣義的,不管採用什麼方式實現。

Listary2 = new ArrayList();

(1);//可以動態的添加元素,數組的長度也隨着變化

(3);

(6);

複製代碼 代碼如下:

/* js的數組屬於動態數組 */

var ary = [];//定義一個數組,未指定長度

ary[0] = 1;//可以動態的添加元素

(3);

(5);

alert((","));//輸出1,3,5

js的`數組同時屬於索引數組和動態數組,因爲本質上它就是一個js對象,體現着js動態語言特性。但js的索引數組並非“連續分配內存的,因此索引方式並不會帶來很高的效率。而java中的數組則是連續分配內存的。