JS 索引數組、關聯數組和靜態數組、動態數組
數組分類:
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爲基礎的,這裏說動態數組是廣義的,不管採用什麼方式實現。不要較勁) */ List<Integer> ary2 = new ArrayList<Integer>(); ary2.add(1);//可以動態的添加元素,數組的長度也隨着變化 ary2.add(3); ary2.add(6);
/* js的數組屬於動態數組 */ var ary = [];//定義一個數組,未指定長度 ary[0] = 1;//可以動態的添加元素 ary.push(3); ary.push(5); alert(ary.join(","));//輸出1,3,5
js的數組同時屬於索引數組和動態數組,因爲本質上它就是一個js對象,體現着js動態語言特性。但js的索引數組並非“連續分配”內存的,因此索引方式並不會帶來很高的效率。而java中的數組則是連續分配內存的。
Array 對象sort 方法描述:
返回一個元素已經進行了排序的 Array 對象.
語法:
sort() 默認對 字符傳進行排序.
arrayobj.sort(sortfunction)
如要求結果是10、16、120這樣的數字大小排序,應該使用下面的程序:
<SCRIPT language=JavaScript>
var a=new Array(3);
a[0]=10;
a[1]=16;
a[2]=120;
a.sort(function(x,y){return parseInt(x)-parseInt(y);});
document.write(a+" ");
</SCRIPT>
function(x,y)是具體實現排序功能的函數, 上面的方法是實現升序,如果想實現降序,可以改下返回結果:return parseInt(y)-parseInt(x);
當然如果想實現字符串的排序,則可以直接使用a.sort(param);即sort(param) 默認對字符串進行排序,參數爲一函數,如果省略該參數,則那麼元素將按照 ASCII 字符順序進行升序排列.當然也可以實現對Long型數據排序,將parseInt改爲parseLong即可.