JavaScript - for...in & for...of
Overview
Estimated time: 20–30 minutes
for...in
iterates enumerable property keys; for...of
iterates values of iterables (arrays, strings, Maps, etc.).
Learning Objectives
- Choose
for...in
for object keys andfor...of
for values. - Use
Object.keys/values/entries
for predictable order.
Prerequisites
Examples
// for...in (keys)
const obj = { a:1, b:2 };
for (const k in obj) {
console.log(k, obj[k]);
}
// for...of (values)
for (const v of [10,20,30]) {
console.log(v);
}
// Map iteration (entries)
const m = new Map([["x",1],["y",2]]);
for (const [k,v] of m) {
console.log(k, v);
}
Common Pitfalls
for...in
walks inherited enumerable keys; guard withObject.hasOwn
or useObject.keys
.