如何以对象为成员循环遍历纯 JavaScript 对象

新手上路,请多包涵

如何遍历 JavaScript 对象中的所有成员,包括作为对象的值?

例如,我怎样才能遍历这个(访问每个“your_name”和“your_message”)?

var validation_messages = {
    "key_1": {
        "your_name": "jimmy",
        "your_msg": "hello world"
    },
    "key_2": {
        "your_name": "billy",
        "your_msg": "foo equals bar"
    }
}

原文由 edt 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 417
2 个回答
for (var key in validation_messages) {
 // skip loop if the property is from prototype
 if (!validation_messages.hasOwnProperty(key)) continue;

 var obj = validation_messages[key];
 for (var prop in obj) {
 // skip loop if the property is from prototype
 if (!obj.hasOwnProperty(prop)) continue;

 // your code
 alert(prop + " = " + obj[prop]);
 }
 }

原文由 AgileJon 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 ECMAScript 5 下,您可以组合 Object.keys()Array.prototype.forEach()

 var obj = {
  first: "John",
  last: "Doe"
};

//
//	Visit non-inherited enumerable keys
//
Object.keys(obj).forEach(function(key) {

  console.log(key, obj[key]);

});

原文由 Axel Rauschmayer 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题