Irina Glushko 2389e7160b HW1 done | 3 lat temu | |
---|---|---|
.. | ||
# | 3 lat temu | |
test | 3 lat temu | |
.editorconfig | 3 lat temu | |
.npmignore | 3 lat temu | |
CHANGELOG.md | 3 lat temu | |
CHANGES | 3 lat temu | |
LICENSE | 3 lat temu | |
README.md | 3 lat temu | |
appveyor.yml | 3 lat temu | |
array.js | 3 lat temu | |
for-of.js | 3 lat temu | |
get.js | 3 lat temu | |
index.js | 3 lat temu | |
is-iterable.js | 3 lat temu | |
package.json | 3 lat temu | |
string.js | 3 lat temu | |
valid-iterable.js | 3 lat temu |
$ npm install es6-iterator
To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: Browserify, Webmake or Webpack
Abstract Iterator interface. Meant for extensions and not to be used on its own.
Accepts any list object (technically object with numeric length property).
Mind it doesn't iterate strings properly, for that use dedicated StringIterator
|> click here to run codevar Iterator = require('es6-iterator')
var iterator = new Iterator([1, 2, 3]);
iterator.next(); // { value: 1, done: false }
iterator.next(); // { value: 2, done: false }
iterator.next(); // { value: 3, done: false }
iterator.next(); // { value: undefined, done: true }
Dedicated for arrays and array-likes. Supports three iteration kinds:
|> click here to run codevar ArrayIterator = require('es6-iterator/array')
var iterator = new ArrayIterator([1, 2, 3], 'key+value');
iterator.next(); // { value: [0, 1], done: false }
iterator.next(); // { value: [1, 2], done: false }
iterator.next(); // { value: [2, 3], done: false }
iterator.next(); // { value: undefined, done: true }
May also be used for arguments objects:
|> click here to run code(function () {
var iterator = new ArrayIterator(arguments);
iterator.next(); // { value: 1, done: false }
iterator.next(); // { value: 2, done: false }
iterator.next(); // { value: 3, done: false }
iterator.next(); // { value: undefined, done: true }
}(1, 2, 3));
Assures proper iteration over unicode symbols.
See: http://mathiasbynens.be/notes/javascript-unicode
|> click here to run codevar StringIterator = require('es6-iterator/string');
var iterator = new StringIterator('f🙈o🙉o🙊');
iterator.next(); // { value: 'f', done: false }
iterator.next(); // { value: '🙈', done: false }
iterator.next(); // { value: 'o', done: false }
iterator.next(); // { value: '🙉', done: false }
iterator.next(); // { value: 'o', done: false }
iterator.next(); // { value: '🙊', done: false }
iterator.next(); // { value: undefined, done: true }
Polyfill for ECMAScript 6 for...of
statement.
var forOf = require('es6-iterator/for-of');
var result = [];
forOf('🙈🙉🙊', function (monkey) { result.push(monkey); });
console.log(result); // ['🙈', '🙉', '🙊'];
Optionally you can break iteration at any point:
|> click here to run codevar result = [];
forOf([1,2,3,4]', function (val, doBreak) {
result.push(monkey);
if (val >= 3) doBreak();
});
console.log(result); // [1, 2, 3];
Return iterator for any iterable object.
|> click here to run codevar getIterator = require('es6-iterator/get');
var iterator = get([1,2,3]);
iterator.next(); // { value: 1, done: false }
iterator.next(); // { value: 2, done: false }
iterator.next(); // { value: 3, done: false }
iterator.next(); // { value: undefined, done: true }
Whether obj is iterable
|> click here to run codevar isIterable = require('es6-iterator/is-iterable');
isIterable(null); // false
isIterable(true); // false
isIterable('str'); // true
isIterable(['a', 'r', 'r']); // true
isIterable(new ArrayIterator([])); // true
If obj is an iterable it is returned. Otherwise TypeError is thrown.
Chain multiple iterators into one.
$ npm test