Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Методы, возвращающие итераторы. Массивы
Следующие методы возвращают специальный объект — итератор:
keys()
— возвращает итератор, содержащий индексы элементов массива:
const process = require('process');
let arr = [ 1, 2, 3 ];
let iterator = arr.keys();
console.log(iterator); // Object [Array Iterator] {}
// Перебор всех элементов
for (const key of iterator) {
process.stdout.write(`${key} `);
} // 0 1 2
console.log();
// Преобразование в массив
let arrKeys = [...arr.keys()];
console.log(arrKeys); // [ 0, 1, 2 ]
values()
— возвращает итератор, содержащий значения элементов массива:
const process = require('process');
let arr = [ 1, 2, 3 ];
let iterator = arr.values();
// Перебор всех элементов
for (const value of iterator) {
process.stdout.write(`${value} `);
} // 1 2 3
console.log();
// Преобразование в массив
let arrValues = [...arr.values()];
console.log(arrValues); // [ 1, 2, 3 ]
entries()
— возвращает итератор, содержащий парыиндекс/значение
всех элементов массива:
const process = require('process');
let arr = [ 1, 2, 3 ];
let iterator = arr.entries();
// Перебор всех элементов
for (const [key, value] of iterator) {
process.stdout.write(`${key} => ${value} `);
} // 0 => 1 1 => 2 2 => 3
console.log();
// Преобразование в массив
let arrEntries = [...arr.entries()];
console.log(arrEntries); // [ [ 0, 1 ], [ 1, 2 ], [ 2, 3 ] ]
Создать итератор, содержащий значения элементов массива, можно также следующим способом:
const process = require('process');
let arr = [ 1, 2, 3 ];
let iterator = arr[Symbol.iterator]();
console.log(iterator); // Object [Array Iterator] {}
// Перебор всех элементов
for (const value of iterator) {
process.stdout.write(`${value} `);
} // 1 2 3
Цикл for...of
на каждом шаге вызывает метод next()
объекта итератора. В принципе мы можем вызвать метод next()
и сами:
let arr = [ 1, 2, 3 ];
let iterator = arr.values();
// Перебор всех элементов
console.log(iterator.next().value); // 1
console.log(iterator.next().value); // 2
console.log(iterator.next().value); // 3
console.log(iterator.next().value); // undefined
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов