2017-10-21 6 views
0

配列を使用してJSONオブジェクトをナビゲートする関数を作成し、各ステップでキーを結果配列にプッシュします。問題は、私は各連続したループで更新されたオブジェクトを使用するためにループを取得できないということです。Javascript - ループ外の値を更新してから新しい値を使用する

JSONオブジェクト:

myData = { 
    'Eye': { 
     'Abnormal Morphology': [ 
      'Neoplasm', 
      'Abnormality of the globe' 
     ], 
     'Abnormal Physiology': [ 
      'Hemorrhage', 
      'Ptosis', 
      'Ocular pain' 
     ] 
    }, 
    'Ear': { 
     'Outer Ear': [ 
      'Abnormality of the pinna', 
      'Abnormal location of ear', 
      'Extra chondra fold' 
     ], 
     'Middle Ear': [ 
      'Glue ear', 
      'Otitis media' 
     ] 
    } 
} 

と機能:

view = ['Ear', 'Outer Ear'] 

getMenuItems(object, array) { 
    let menuItems = Object.keys(object); 
    let result = [menuItems]; 

    for (let item in array) { 
     object = object[item];   // use updated object each time 
     menuItems = Object.keys(object); 
     result.push(menuItems); 
    } 

    return result; 
} 

私は期待していた結果は次のとおりです。

[['Eye', 'Ear'], ['Outer Ear', 'Inner Ear'], ['Abnormality of the pinna', 'Abnormal location of ear', 'Extra chondra fold']] 

しかし、私が得るすべては次のとおりです。

['Eye', 'Ear'] 
+0

たぶん* *オブジェクトと* OBJ *置き換えます? –

+0

申し訳ありませんが、変数名が明確になり、その名前を忘れてしまいました。 –

+0

私はあなたが期待している結果を理解しているかどうかはわかりません。あなたが期待している結果の例を挙げることができますか? (例:結果は['foo'、 'bar']になります) – 3Dos

答えて

1
for(let item in array) 

項目キー(0,1,2)を反復します。小道具を反復する代わりにのを使用することができます:

for(const item of array) 

そして、それはworks

+0

ありがとう、ちょうど私が必要なものだった! –

関連する問題