1 var privArr = []; 2 privArr['staProjQueryGrid'] = [{ 3 btn_id : 'but_add', 4 roles : ['2001','2005'] 5 }] 6 7 console.log(privArr,privArr.staProjQueryGrid[0].btn_id)
第一行是定義一個數組priArr,第二行是給這個數組添加一個屬性staProjQueryGird,這個屬性值是一個數組。打印結果是 but_add
1 var unPrivArr = [];//創建一個空數組並賦給unPrivArr 2 unPrivArr['1000']=[];//往空數組unPrivArr內插入一個空數組,等價於 unPrivArr[1000]=[] 3 unPrivArr['1000']['aaa']={'but_check1':1,'but_check2':1}; 4 //給上面插入的那個空數組添加一個名為aaa的屬性(因為js里一切皆對 象,所以數組也是對象,可以添加屬性和方法),屬性值是一個新對象(即{'but_check1':1,'but_check2':1})。
這個和上面有很大區別。首先第二行如果[]里面是數字的話,那么就代表數組unPriArr第1001個元素也為一個空數組(暫時稱為x),前1000個元素都是undifined,
如果是變量的話就是數組unPriArr的元素
第三行就是給x添加一個屬性aaa,屬性值是一個關聯數組{'but_check1':1,'but_check2':1}
可以用x['but_check1']來獲取對應的值
我又想 關聯數組是不是給對象添加屬性呢?
1 var unPrivArr = [];//創建一個空數組並賦給unPrivArr 2 unPrivArr['1000']=[];//往空數組unPrivArr內插入一個空數組,等價於 unPrivArr[1000]=[] 3 unPrivArr['1000']['aaa']={'but_check1':1,'but_check2':1}; 4 console.log(unPrivArr[1000].aaa['but_check1'])
這個能正確輸出結果1,或者用 unPrivArr[1000].aaa.but_check1也能輸出結果,但是如果加引號就是錯誤的
如果第三行給{}里面的引號去掉,第四號就會報錯,此時只能用 unPrivArr[1000].aaa.but_check1
