ในES6 / 2015คุณสามารถวนซ้ำวัตถุเช่นนี้: (ใช้ฟังก์ชั่นลูกศร )
Object.keys(myObj).forEach(key => {
  console.log(key);        // the name of the current key.
  console.log(myObj[key]); // the value of the current key.
});
jsbin
ในES7 / 2016คุณสามารถใช้Object.entriesแทนObject.keysและวนลูปผ่านวัตถุเช่นนี้:
Object.entries(myObj).forEach(([key, val]) => {
  console.log(key); // the name of the current key.
  console.log(val); // the value of the current key.
});
ด้านบนจะทำงานเป็นซับเดียว :
Object.entries(myObj).forEach(([key, val]) => console.log(key, val));
jsbin
ในกรณีที่คุณต้องการวนซ้ำวัตถุที่ซ้อนกันคุณสามารถใช้ฟังก์ชันเรียกซ้ำ (ES6):
const loopNestedObj = obj => {
  Object.keys(obj).forEach(key => {
    if (obj[key] && typeof obj[key] === "object") loopNestedObj(obj[key]); // recurse.
    else console.log(key, obj[key]); // or do something with key and val.
  });
};
jsbin
เหมือนกับฟังก์ชันด้านบน แต่ใช้ES7 Object.entries()แทนObject.keys():
const loopNestedObj = obj => {
  Object.entries(obj).forEach(([key, val]) => {
    if (val && typeof val === "object") loopNestedObj(val); // recurse.
    else console.log(key, val); // or do something with key and val.
  });
};
ที่นี่เราวนซ้ำวัตถุที่ซ้อนกันเปลี่ยนค่าและส่งคืนวัตถุใหม่ในครั้งเดียวโดยใช้Object.entries()ร่วมกับObject.fromEntries()( ES10 / 2019 ):
const loopNestedObj = obj =>
  Object.fromEntries(
    Object.entries(obj).map(([key, val]) => {
      if (val && typeof val === "object") [key, loopNestedObj(val)]; // recurse
      else [key, updateMyVal(val)]; // or do something with key and val.
    })
  );