Javascript 的常規數組 和 關聯數組 對比!


首先我們看看數組的分類:

從數組的下標分為索引數組、關聯數組
/* 索引數組,即通常情況下所說的數組 */ 
var ary1 = [1,3,5,8];  
//按索引去取數組元素,從0開始(當然某些語言實現從1開始),索引實際上就是序數,一個整型數字  
ary1[0];  
ary1[1];  
ary1[2];  
ary1[3];   
 
/* 關聯數組,指以非序數類型為下標來存取的數組  python中稱為字典 */ 
var ary2 = {};   //存取時,以非序數(數字),這里是字符串  
ary2["one"] = 1;  
ary2["two"] = 2;  
ary2["thr"]  = 3;  
ary2["fou"] = 4;

 

問題:你可以如下測試:   

alert(arry1.length);      // 返回值為:4

 

alert(arry2.length);    //返回值為:0

 

   

這是因為什么呢,因為js是弱類型語言,所以js 的任何類型都是object,

比如var arr = [];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr["s"] = 4;
此時你調用arr.s相當於是在調用arr這個對象的s屬性,但是這是arr.length仍然是3。

總結:關聯數組雖然可以用字符串作下標,但是這個下標是不支持參數傳值的,換言之,你需要什么就取什么,聽起來很智能,實際上你取值仍然需要你手動去寫下標的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM