Что такое формат повторяемого в JavaScript - PullRequest
0 голосов
/ 24 января 2019

Я изучаю итерацию в es6 и понимаю, что она делает.Тем не менее, я постоянно сталкиваюсь со словами "он возвращает итеративный".Если объект выглядит так {} и массив, подобный этому [] и т. Д., Может кто-нибудь показать мне, как выглядит итерация.Спасибо

Ответы [ 5 ]

0 голосов
/ 24 января 2019

По своему усмотрению итерация - это значение, даже примитивное значение, в котором реализовано Symbol.iterator.

Например, массив имеет это по умолчанию, например

var array = ['a', 'b', 'c'];

console.log(...array);

Но если вы добавите итератор, например, к прототипу Number, вы можете даже распространять числа.

Number.prototype[Symbol.iterator] = function* () {
    for (var i = 0; i < this; i++) {
        yield i;
    }
};

console.log(...10);
0 голосов
/ 24 января 2019

Когда они говорят «он вернется итеративно», это означает, что вы можете использовать его в цикле for ... для итерации этого объекта.Как известно, Plain JS Object не повторяется.Ниже приведены значения итераций: 1.Массивы 2.Строки 3.Карты 4.Наборы Итерация - это структура данных, которая хочет сделать свои элементы доступными для общественности.Это достигается путем реализации метода, ключом которого является Symbol.iterator.Этот метод является фабрикой для итераторов.

0 голосов
/ 24 января 2019

Итерируемый интерфейс, а не структура данных. Вы можете прочитать больше здесь

0 голосов
/ 24 января 2019

Итерация сама по себе не является структурой данных (как массив или объект). Вместо этого это функция свойства объекта, которая определяет как объект итерируемый.

Подробнее см. Протоколы итерации :

Итерируемый протокол позволяет объектам JavaScript определять или настраивать свое поведение итерации, например, какие значения повторяются в конструкции for..of. Некоторые встроенные типы являются встроенными итерациями с поведением итерации по умолчанию, например, Array или Map, в то время как другие типы (например, Object) - нет.

0 голосов
/ 24 января 2019

Итерируемый означает объект (массив также является объектом), который имеет функцию Symbol.iterator. Чтобы просто проверить, является ли объект итеративным или нет, вы можете попробовать использовать на нем оператор распространения

пример iterable example Чтобы понять, как работает итерируемый https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator

...