Iteration in JavaScript
Iterate an Array
ES5
forEach
var nums = [2, 3, 6, 7];
nums.forEach(function(value, opt_index, opt_array) {
console.log(value, opt_index, opt_array);
});
// Output
// 2, 0, [2, 3, 6, 6]
// 3, 1, [2, 3, 6, 6]
// 6, 2, [2, 3, 6, 6]
// 7, 3, [2, 3, 6, 6]
Note: You can't break forEach
.
for loop
var nums = [2, 3, 6, 7];
for (var idx = 0; idx < nums.length; idx++) {
console.log(nums[idx], idx);
}
// Output
// 2, 0
// 3, 1
// 6, 2
// 7, 3
ES6
forEach
Same as ES5 syntax
for...of
const nums = [2, 3, 6, 6];
for (const value of nums) {
console.log(value);
}
// Output
// 2
// 3
// 6
// 7
Iterate an Object
ES5
for...in
var values = {"a": 0, "b": 1};
for (var key in values) {
console.log(key, values[key]);
}
// Output
// "a", 0
// "b", 1
ES6
for...in
Same as ES5 syntax.
for...of
const values = {"a": 0, "b": 1};
for (const [key, value] of Object.entries(values)) {
console.log(key, value);
}
// Output
// "a", 0
// "b", 1
Iterate an Map
Only available in ES6
forEach
const map = new Map([["a", 0], ["b", 1]]);
map.forEach((value, key, this_map) => {
console.log(value, key, this_map);
});
// Output
// 0 "a" Map(2) {"a" => 0, "b" => 1}
// 1 "b" Map(2) {"a" => 0, "b" => 1}
for...of
const map = new Map([["a", 0], ["b", 1]]);
for (const [key, value] of map) {
console.log(key, value);
}
// Output
// "a", 0
// "b", 1
Map.prototype.keys()
const map = new Map([["a", 0], ["b", 1]]);
for (const key of map.keys()) {
console.log(key, map.get(key));
}
// Output
// "a", 0
// "b", 1
Map.prototype.entries()
const map = new Map([["a", 0], ["b", 1]]);
for (const [key, value] of map.entries()) {
console.log(key, value);
}
// Output
// "a", 0
// "b", 1
Iterate a Set
Only available in ES6
for...of
const set = new Set(["a", "b"]);
for (const value of set) {
console.log(value);
}
// Output
// "a"
// "b"
Set.prototype.keys()
const set = new Set(["a", "b"]);
for (const key of set.keys()) {
console.log(key);
}
// Output
// "a"
// "b"
Set.prototype.values()
const set = new Set(["a", "b"]);
for (const value of set.values()) {
console.log(value);
}
// Output
// "a"
// "b"
Set.prototype.entries()
const set = new Set(["a", "b"]);
for (const [key, value] of set.entries()) {
console.log(key, value);
}
// Output
// "a" "a"
// "b" "b"