2016-11-04 2 views
-1

単純なオブジェクトの配列を格納してから取り出しようとしています。何らかの理由で、オブジェクトのpName要素が常に「デフォルト」に戻ってきます。私は何が間違っているのか分かりません。 personIDは期待値に戻ります。配列内のオブジェクトの設定と検索

var phys = {pName:"default", 
      personID:0}; 

var aGroupPhys = []; // Clear the array 
for (var i = 0; i < data.MD_LIST.Q.length; i++) { 
    //phys.pNname = data.MD_LIST.Q[i].PHYS_NAME; 
    phys.pNname = "STEVE" 
    phys.personID = data.MD_LIST.Q[i].PERSON_ID; 
    aGroupPhys.push(phys); 
    alert(i + " Name: " + aGroupPhys[i].pName + " personID: " + aGroupPhys[i].personID); 
} 

出力:この問題は解決され

enter image description here

+1

言語タグ –

+0

誤植を追加してください: 'phys.pNname = "STEVE"'で余分な 'N'を削除します。 – JimmyB

+0

同じ*オブジェクトを配列に追加し続けていることにも注意してください。あなたはいくつかの同一のエントリの配列で終わるでしょう。それはおそらくあなたが望むものではありません。 – JimmyB

答えて

0

。以下は正しいコードです。

var phys = {}   
var aGroupPhys = []; // Clear the array 

for (var i = 0; i < data.MD_LIST.Q.length; i++) { 
    phys = new Object(); 

    phys.pName = data.MD_LIST.Q[i].PHYS_NAME; 
    //phys.pName = "STEVE" 
    phys.personID = data.MD_LIST.Q[i].PERSON_ID; 
    aGroupPhys.push(phys); 
    //alert(i + " Name: " + aGroupPhys[i].pName + " personID: " + aGroupPhys[i].personID); 
} 

for (var i = 0; i < aGroupPhys.length; i++) { 
    alert(aGroupPhys[i].pName); 
} 
関連する問題