JavaScript: Пользовательские итерируемые объекты (Symbol.iterator)

  Рет қаралды 5,065

LN Master

LN Master

Күн бұрын

Symbol.iterator - известный символ, задающий итератор объекта, используемый по умолчанию.
Применяется в конструкции for...of.
Каждый раз, когда объект должен быть проитерирован (как, например, в начале цикла for..of), метод @@iterator вызывается без аргументов, а возвращённый итератор используется непосредственно для получения значений.
Некоторые встроенные типы имеют стандартное итерационное поведение, в то время как другие типы (как Object) таким свойством не обладают.
Github код примера: github.com/Luk...
Telegram канал: t.me/ln_yt
Telegram лс: @lnmasterJS
#js #итерация #практика

Пікірлер: 30
@gyglejid
@gyglejid 11 ай бұрын
Благодарю за твой труд и возможность интерактивно прощупать этот итератор!))
@virnus1
@virnus1 Жыл бұрын
Читаю learn JS, добрался до темы тренируемых объектов, само собой нафига не понял, после ролика стало чуть более понятно, ещё осталось понять а нафига оно надо.
@LNMaster_
@LNMaster_ Жыл бұрын
Более глубокое погружение в язык .
@Katya-jj6nh
@Katya-jj6nh Жыл бұрын
и я оттуда)
@denichi872
@denichi872 Жыл бұрын
для уровня мидл нужно
@artemev9658
@artemev9658 7 ай бұрын
поддерживаю, это че-за болото нахрена оно вообще нужно
@fl1ckyyy155
@fl1ckyyy155 4 ай бұрын
Жиза​@@artemev9658
@ДербуговИван
@ДербуговИван Ай бұрын
Крутой видос, жаль так мало лайков...
@denichi872
@denichi872 Жыл бұрын
Красава бро! Не как все каналы пример из доки стянут и запишут формальное видео. То что я искал!
@EugeneKh.
@EugeneKh. Жыл бұрын
Твой код нуждается в рефакторе: Созданный массив с ключами находится в блочной области видимости, собственно нет неоходимости перезаписывать в отдельную переменную контекст вызова, там где ты ретернишь value просто укажи keys[counter++] Так же нет особой необходимости отдельно записывать свойство length в переменную, если к ней можно обратится напрямую. А в целом, с твоим примером я понял как создать кастомный итератор, спасибо!
@radist126
@radist126 2 жыл бұрын
Классный урок. Кажись наконец то я понял где сидят итераторы и как их делать. Вот только еще не понял, нафига они нужны? )))
@mykhailostepanishchev6472
@mykhailostepanishchev6472 2 жыл бұрын
Спасибо,было интересно.
@artedza
@artedza 3 жыл бұрын
Спасибо за видео!
@swave2720
@swave2720 Жыл бұрын
это бомба
@АнтонПодколзин-и7р
@АнтонПодколзин-и7р 3 жыл бұрын
Почему нельзя использовать Object.keys or Object.values ?
@КотМатроскин-х9ь
@КотМатроскин-х9ь 3 жыл бұрын
ебта зачем столько лишних строк кода??? реально же можно гораздо проще пройтись по объекту.... автор... зачем в заблуждение вводишь??????????????????
@LNMaster_
@LNMaster_ 2 жыл бұрын
Можно. В продакшене как раз и прибегают к стандартным способам. Вариант через итератор дает больше контроля над состоянием объекта и также некоторые возможности (например пробежка через for of)
@userman6193
@userman6193 2 жыл бұрын
Дело в том, что вы контролируете проход. Вы можете перебирать через вызов next(), делая один шаг под условие. К примеру вы ожидаете поступления каких либо данных, как только они поступили вы выполняете комбинирование данных из вашего объекта с данными входящими и получаете к примеру новую строку или новый объект.
@muborizDev
@muborizDev 3 жыл бұрын
👍
@MyNameIsRishat
@MyNameIsRishat 2 жыл бұрын
Самое подробное объяснение.
@TheMugen18
@TheMugen18 2 жыл бұрын
С одной стороны вроде ничего сложного, а с другой, сам реализацию подобного просто с головы точно не напишу. Насколько, это для джуна актуально(как часто приходится делать объекты итерируемыми)?
@LNMaster_
@LNMaster_ 2 жыл бұрын
Очень редко
@webdeveloper5770
@webdeveloper5770 4 ай бұрын
А про for in не слышал?
@LNMaster_
@LNMaster_ 4 ай бұрын
Ты можешь сделать как тебе заблагорассудится , тыкать носом альтернативным способом или оптимизацией не нужно
@gomuncool1004
@gomuncool1004 Ай бұрын
For in перебирает все свойства в том числе и наследуемые, что явно тебе не понравится
@psix9618
@psix9618 Жыл бұрын
Почему вы говорите "Класса Object", если Object это функция-конструктор, а не класс?
@LNMaster_
@LNMaster_ Жыл бұрын
По факту это функция-конструктор в контексте JS, да.
Proxy и Symbol в JavaScript
48:29
Timur Shemsedinov
Рет қаралды 10 М.
Walking on LEGO Be Like... #shorts #mingweirocks
00:41
mingweirocks
Рет қаралды 7 МЛН
Урок 11. JavaScript. Генераторы. Symbol iterator, for of
17:26
Владилен Минин
Рет қаралды 110 М.
Learn JavaScript Generators In 12 Minutes
12:11
Web Dev Simplified
Рет қаралды 179 М.
Walking on LEGO Be Like... #shorts #mingweirocks
00:41
mingweirocks
Рет қаралды 7 МЛН