Home Reference Source

src/rseq.js

import seq from './seq';

/**
 * 配列を逆順に辿るイテレーターを返します。
 *
 * @param {*[]} coll - 配列
 *
 * @return {iterator | null} イテレーター。配列が空の場合はnull
 */
export default function rseq(coll) {
  if (!Array.isArray(coll)) {
    throw 'Invalid arguments';
  }

  return seq(function*() {
    for (let i = coll.length - 1; i >= 0; --i) {
      yield coll[i];
    }
  }());
}