Перерыл весь гугл и видосы на ютубе, но так и не понял. Уже 2 дня на одном месте сижу, терпение лопается...
Код взят c learn.javascript, но там это не объясняется.
Пожалуйста, объясните, что именно здесь происходит? Первая версия кода с learn.js
let str = "Hello";
let iterator = str[Symbol.iterator]();
while (true) {
let result = iterator.next();
if (result.done) break;
alert(result.value); // выводит символы один за другим
}
И вторая, моя которую я пытаюсь понять изнутри, но оно не работает... Что именно не так? (Мне кажется, что все не "так"...)
let str = "Hello";
let iterator = str[Symbol.iterator] = function() {
let i = 0;
return {
next() {
return (i < this.length) ? ({ value: this[i++] }) : ({ done: true })
}
}
};
while (true) {
let result = iterator.next();
if (result.done) break;
alert(result.value);