為什么聲明變量第一個是var myarr不是var myarr[i]
var myarr=new Array();?//先聲明一維?
for(var i=0;i<3;i++){ ? //一維長度為3
? ?myarr[i]=new Array(); ?//再聲明二維?
? ?for(var j=0;j<5;j++){ ? //二維長度為5
? ?myarr[i][j]=i*j; ? // 賦值,每個數組元素的值為i+j
? ?} }
雖然知道這是正確的,
但為什么不是兩個聲明都有
為什么var myarr[i],而不是var myarr[j]/[q]/[k]呢
求大神給菜鳥一個好理解記憶的說法
2016-12-20
為了能讓你更好的理解,我重新描述一下這個過程,
第一句是在聲明一個一維數組myarr,在內存中開辟出一塊空間來等你給賦與具體的值;
因為題給數組長度是3,所以for循環三次,遍歷myarr數組中每一個元素myarr[0].myarr[1],myarr[2];
所以,程序中第三句也可以理解成在遍歷的同時創建新的一維數組并賦值給myarr數組的每一個元素myarr[0].myarr[1],myarr[2];
這樣的話,myarr數組中的每一個元素也是數組形式的了,就變成了二維數組(數組中的元素還是數組),就像myarr是一個大盒子,里面又被裝進了三個小盒子,小盒子里面才是具體的數字,這樣能明白了吧?
第二個問題:為什么不是var myarr[j]/[q]/[k]
這個完全可以是j/q/k,方括號里的變量代表的是數組中的索引,也就是第幾個元素,大家都習慣了用i表示而已,就像這個數組名字一樣,你也可以定義成yourarr,沒有影響的.
就這樣!