Home Reference Source

src/nth.js

import seq from './seq';

/**
 * 集合のn番目の要素を取得します。
 *
 * @param {*[] | iterator | null} coll - 集合
 * @param {number} n - 何番目の要素を取得したいか
 *
 * @return {* | null} n番目の要素。要素が存在しない場合はnull
 */
export default function nth(coll, n) {
  const iter = seq(coll);
  if (!iter) {
    return null;
  }

  let next = undefined;
  for (let i = 0; i <= n; ++i) {
    next = iter.next();
    if (next.done) {
      return null;
    }
  }

  return next.value;
}