15270821319 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
..
# 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
test 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
.editorconfig 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
.npmignore 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
CHANGELOG.md 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
CHANGES 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
LICENSE 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
README.md 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
appveyor.yml 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
array.js 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
for-of.js 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
get.js 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
index.js 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
is-iterable.js 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
package.json 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
string.js 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred
valid-iterable.js 4e5c5d37f9 初步设计数据库,注册登录 5 mesiacov pred

README.md

es6-iterator

ECMAScript 6 Iterator interface

Installation

$ 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

API

Constructors

Iterator(list) (es6-iterator)

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

var 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 }

ArrayIterator(arrayLike[, kind]) (es6-iterator/array)

Dedicated for arrays and array-likes. Supports three iteration kinds:

  • value (default) - Iterates values
  • key - Iterates indexes
  • key+value - Iterates keys and indexes, each iteration value is in [key, value] form.

    var 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:

(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));

StringIterator(str) (es6-iterator/string)

Assures proper iteration over unicode symbols.
See: http://mathiasbynens.be/notes/javascript-unicode

var 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 }

Function utilities

forOf(iterable, callback[, thisArg]) (es6-iterator/for-of)

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:

var result = [];

forOf([1,2,3,4]', function (val, doBreak) {
  result.push(monkey);
  if (val >= 3) doBreak();
});
console.log(result); // [1, 2, 3];

get(obj) (es6-iterator/get)

Return iterator for any iterable object.

var 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 }

isIterable(obj) (es6-iterator/is-iterable)

Whether obj is iterable

var isIterable = require('es6-iterator/is-iterable');

isIterable(null); // false
isIterable(true); // false
isIterable('str'); // true
isIterable(['a', 'r', 'r']); // true
isIterable(new ArrayIterator([])); // true

validIterable(obj) (es6-iterator/valid-iterable)

If obj is an iterable it is returned. Otherwise TypeError is thrown.

Method extensions

iterator.chain(iterator1[, …iteratorn]) (es6-iterator/#/chain)

Chain multiple iterators into one.

Tests Build Status

$ npm test