循环嵌套对象

时间:2017-10-11 21:24:09

标签: jquery nested each

找到了这个主题的几个主题,但无法解决我的问题。

我有一个像这样的对象:

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

现在我只想推出一个像

这样的列表
  

item1的val1为4,val2为blaharb   itemxyz2的val1为76,val2的为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 ...
});

非常感谢帮助,谢谢!

2 个答案:

答案 0 :(得分: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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您需要使用&#34;值&#34;选项。

像:

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