2017-10-11 19 views
1

このテーマにはいくつかのスレッドが見つかりましたが、問題を解決できませんでした。ネストされたオブジェクトのループ

私はこのようなオブジェクトを持っている:今、私は単に

のようなリストを出したい

allItems: { 
      item1: { 
       val1: 4, 
       val2: 'blaharb' 
        }, 
      itemxyz2: { 
       val1: 76, 
       val2: 'blurb' 
        } 
      } 

ITEM1がitemxyz2のための76を持っているとval2
ためval1とblaharbための4を持っていますval2のval1とblurb

私の今までの試行:

console.log(allItems.item1.val1); // prints correctly '4' in the console 

$.each(allItems, function(key, value) { 
console.log(key); // gives me correct key (like 'item1') 
console.log(allItems.item1.val1);// error: "undefined is not an object" - but why?! 
console.log(allItems.key.val1); // same error, understandable ... 
}); 

ありがとう、ありがとう!

答えて

3

あなたは配列の構文を使用して、オブジェクトのプロパティにアクセスすることができます

$.each(allItems, function(key, value) { 
    console.log(allItems[key]["val1"]); 
    console.log(allItems[key]["val2"]); 
}); 

例:

var allItems = { 
 
    item1: { 
 
    val1: 4, 
 
    val2: 'blaharb' 
 
    }, 
 
    itemxyz2: { 
 
    val1: 76, 
 
    val2: 'blurb' 
 
    } 
 
}; 
 

 

 
$.each(allItems, function(key, value) { 
 
    console.log(allItems[key]["val1"]); 
 
    console.log(allItems[key]["val2"]); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

超高速答えてくれてありがとう、@Aknosis - これは私が必要な正確な情報でした。 – BNetz

0

あなたは "値" オプションを使用する必要があります。

のような:

$.each(allItems, function(key, value) { 
      console.log(key, value.val1); 
      console.log(key, value.val2); 
    }); 
関連する問題