找到了与此主题相关的多个主题,但无法解决我的问题。

我有一个这样的对象:

 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 ...
});


非常感谢帮助,谢谢!

最佳答案

您可以使用数组语法访问对象属性:

$.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>

关于jquery - 循环嵌套对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46697792/

10-12 12:25
查看更多