Итераторы
Credit: https://learn.javascript.ru/iterator
by Artem
JavaScript
'use strict';
const user = {
name: 'Artem',
surname: 'Nakhodkin'
};
user[Symbol.iterator] = function() {
let values = [];
let keys = Object.keys(this);
for (let key of keys) {
values.push(this[key]);
}
return {
next() {
if (values.length > 0) {
return {
value: values.shift(),
done: false
};
} else {
return {
done: true
}
}
}
}
};
//for (let value of user) {
// alert(value);
//}
function showArgs(...args) {
args.forEach(arg => alert(arg));
}
//showArgs(...user);
const iterator = user[Symbol.iterator]();
while(true) {
let result = iterator.next();
if (result.done) break;
alert(result.value);
}