sj-freitas/forofa

View on GitHub
lib/functions/filter.js

Summary

Maintainability
A
0 mins
Test Coverage
const { createIterable } = require("./../utils");

const filter = (iterable, filterCondition) => {
  const iterator = iterable[Symbol.iterator]();
  let index = 0;

  return createIterable(() => {
    for (;;) {
      const { done, value } = iterator.next();

      if (done || filterCondition(value, index++)) {
        return {
          value,
          done
        };
      }
    }
  });
};

module.exports = { filter };