Skip to content

Instantly share code, notes, and snippets.

@lamchau
Last active August 29, 2015 14:25
Show Gist options
  • Save lamchau/de49a7b871778ff47e1d to your computer and use it in GitHub Desktop.
Save lamchau/de49a7b871778ff47e1d to your computer and use it in GitHub Desktop.
Object.prototype[Symbol.iterator] = function() {
let self = this;
let keys = null;
let length = 0;
let index = -1;
return {
next() {
if (keys === null) {
keys = Object.keys(self);
length = keys.length;
}
let value = {};
value.key = keys[++index];
value.value = self[value.key];
return {
value: value,
done: index >= length
};
}
}
};
let obj = {
a: 1,
b: 2,
c: 3
};
for (let entry of obj) {
console.log(`key: ${entry.key}, value=${entry.value}`);
}
for (let entry of Object.entries(obj)) {
console.log(entry);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment