In Javascript, an iterator is an iterator
An object has an iterator when it has:
var Fib = {
[Symbol.iterator]() {
var n1 = 1, n2 = 1;
return {
next() {
var current = n2;
n2 = n1;
n1 = n1 + current;
return { value: current, done: false };
},
return(v) {
console.log('Done');
return { value: v, done: true };
}
};
}
};
for (var v of Fib) {
console.log( v );
if (v > 50) break;
}
Example with FormData
let formData = new FormData();
formData.append('username', 'Foo');
formData.append('age', '10');
The For over the object implementing an iterator
console.log("For loop");
for (let entry of formData) {
console.log( entry );
}
The while iteration over the iterator
console.log("While loop");
let it = formData.entries();
let result = it.next();
while (!result.done) {
console.log(result.value);
result = it.next();
}
The foreach iteration over the iterator
console.log("For Each");
// value and key should be inverted
formData.forEach((value, key)=>{
console.log(key+":"+value);
})