Iterating thru an Object in JavaScript

For the longest time if I wanted to iterate thru an object in JavaScript I would write code that looked something like this:

const obj = { a: "foo", b: "bar" };
for (const key of Object.keys(obj)) {, obj[key]);

Since ES2017 there is a better way of doing this using Object.entries() and destructuring:

const obj = { a: "foo", b: "bar" };
for (const [ key, value ] of Object.entries(obj)) {, value);

This example feels more natural and really shines once the example gets a little more complicated:

const obj = {
    1: {
        name: "Joe",
        age: 12
    2: {
        name: "Bob",
        age: 42

// Before
for (const key of Object.keys(obj)) {
    const value = obj[key];`${key}.name`,;`${key}.age`, value.age);

// After
for (const [ key, value ] of Object.entries(obj)) {`${key}.name`,;`${key}.age`, value.age);

Being able to save the const value = obj[key]; and having [ key, value ] in the for loop in my oppinion makes it more clear that we are just interating thru the object.