0

javascriptで連想配列を作成すると、そのような問題が発生しました。フィールド名をキーとして値を取得したいのですが、未定義になっているだけです。キーごとに価値を得るにはどうすればよいですか、それともどちらの方法が良いアプローチですか。

これが私のコードです

function getFields(pVal){
    var tmpObj = {};
    str = pVal.split(",");
    for(i=0;i<str.length;i++){
        tmpVal = str[i].split(":");
        tmpObj[tmpVal[0]] = tmpVal[1];  
    }
    return tmpObj;
}

function JustTest(){
   var fields = {}; 
   fields = getFields("'Code':'PRJ001','Name':'Project 01'");
   alert(fields['Code']);
}
4

2 に答える 2

4

キーは'Code'、ではなくCode、一重引用符'であるため、次のことを行う必要があります。 alert(fields["'Code'"]);

PS:ステートメントの最後に追加;してください。省略するのは悪い習慣です。

于 2012-08-09T11:08:53.453 に答える
0

コードをリファクタリングしました。これを試してみてください。

function getFields(pVal) {
    var tmpObj = {};
    var str = pVal.split(",");
    for (var i = 0; i < str.length; i++) {
        var tmpVal = str[i].split(":");
        tmpObj[tmpVal[0]] = tmpVal[1];
    }
    return tmpObj;
}

function JustTest() {
    var fields = { };
    fields = getFields("'Code':'PRJ001','Name':'Project 01'");
    alert(fields["'Code'"]);
}

質問がある場合は、コードについて以下にコメントしてください、ありがとう

于 2012-08-09T11:17:06.263 に答える