iterating through object property values

# Mark Volkmann (10 years ago)

It seems the typical way to do this is:

Object.keys(myObj).forEach(key => {
  let value = myObj[key];
  // Do something with value and/or key.
});

I don't see a new way to do this in ES6.

Is it still being considered to add the methods "entries" and "values" to Object that return iterators?

# Caitlin Potter (10 years ago)

It seems a bit late to add a default @@iterator to Object.prototype, but I guess it could work similar to Map.prototype.entries, if such a thing were to be added.

Have to be really careful adding things to Object.prototype, though — even when they’re non-enumerable, they can cause unexpected problems in code (code which probably ought to be using Object.create(null), but you know, doesn’t).

# Caitlin Potter (10 years ago)

Have to be really careful adding things to Object.prototype, though — even when they’re non-enumerable, they can cause unexpected problems in code (code which probably ought to be using Object.create(null), but you know, doesn’t).

Being a Symbol rather than a String property key probably mitigates most of these problems, but I’m not positive about that.

# Rick Waldron (10 years ago)
# Allen Wirfs-Brock (10 years ago)
for (key of Reflect.ownKeys(myObj)) {
  //Do something with key or myObj[key]
}