aureooms/js-cardinality

View on GitHub
src/core/len.js

Summary

Maintainability
A
0 mins
Test Coverage
/**
 * Len.
 *
 * @param {Iterable} iterable
 */
const len = (iterable) => {
    if (iterable.length !== undefined) return iterable.length;

    if (iterable.size !== undefined) return iterable.size;

    const it = iterable[Symbol.iterator]();

    let n = 0;

    while (!it.next().done) ++n;

    return n;
};

export default len;