2013-01-31 243 views
0

代碼的JSON類型:JavaScript數組 - 訪問對象


function getDummyDetails(){ 
var userDetailsMap = []; 
userDetailsMap.push({key:'APPCODE', value:'41'}); 
userDetailsMap.push({key:'WORKERNUMBER', value:'1234567'}); 
userDetailsMap.push({key:'ACCOUNTID', value:'DEVELOP'}); 
userDetailsMap.push({key:'NAMEFIRST', value:'John'}); 
userDetailsMap.push({key:'NAMELAST', value:'Developer'}); 

return userDetailsMap; 

}

function someOtherFunction() { 

var userDetails = getDummyDetails(); 
document.getElementById("userName").innerHTML = "User Name: " + userDetails[3].value + ", " + userDetails[4].value; 

}


在這裏,它工作正常,但我不能使用這裏的數組索引像userDetails [3] .value。我試圖做這樣的事情

userDetails["APPCODE"].value; // just a pseudo code 

如何索引這個數組與字符串值而不是一個整數?

回答

3

您應該創建一個對象而不是數組。這樣,你就可以通過它的密鑰來訪問它:

function getDummyDetails() { 
    return { 
     'APPCODE':'41', 
     'WORKERNUMBER':'1234567', 
     'ACCOUNTID':'DEVELOP', 
     'NAMEFIRST':'John', 
     'NAMELAST':'Developer' 
    }; 
} 

function someOtherFunction() { 
    var userDetails = getDummyDetails(); 
    userDetails["APPCODE"] // 41 - use it however you want... 
} 
+0

請問我可以分享我的代碼我該怎麼做? – jeewan

+0

ohh我可以做到這一點,但沒有辦法做到這一點userDetails [「APPCODE」]。沒有觸及函數getDummyDetails() – jeewan

+1

是的,這是應該如何。對象可以通過類似的字符串進行索引。 –

1

您需要創建一個對象,而不是一個數組:

var userDetailsMap = { 
    APPCODE:41 
} 

var value = userDetailsMap["APPCODE"];//value now = 41 
1

如果你不想改變你的結構,你可以迭代你的數組:

for (var i = 0, len = userDetailsMap.length; i < len; i++) { 
    if (userDetailsMap[i].key == 'APPCODE') { 
    var val = userDetailsMap[i].value; 
    // do something with the value here 
    } 
} 
+0

感謝兄弟,但我沒有在這裏遍歷所有對象,只需要它們中的幾個。現在,我只想在這裏「APPCODE」。我正在嘗試,讓我看看我將如何結束:-) – jeewan