0

コード:


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

この配列に整数ではなく文字列値でインデックスを付けるにはどうすればよいですか?

4

3 に答える 3

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...
}
于 2013-01-31T19:27:16.833 に答える
1

配列ではなく、オブジェクトを作成する必要があります。

var userDetailsMap = {
  APPCODE:41
}

var value = userDetailsMap["APPCODE"];//value now = 41
于 2013-01-31T19:28:11.903 に答える
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
  } 
}
于 2013-01-31T19:29:23.127 に答える