Ramda Adjunct 4.0.0

omitIndexes.js

import { includes, curry, addIndex, reject } from 'ramda';

// helpers
const rejectIndexed = addIndex(reject);
const containsIndex = curry((indexes, val, index) => includes(index, indexes));

/**
 * Returns a partial copy of an array omitting the indexes specified.
 *
 * @func omitIndexes
 * @memberOf RA
 * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}
 * @category List
 * @sig [Int] -> [a] -> [a]
 * @see {@link http://ramdajs.com/docs/#omit|R.omit}, {@link RA.pickIndexes|pickIndexes}
 * @param {!Array} indexes The array of indexes to omit from the new array
 * @param {!Array} list The array to copy from
 * @return {!Array} The new array with omitted indexes
 * @example
 *
 * RA.omitIndexes([-1, 1, 3], ['a', 'b', 'c', 'd']); //=> ['a', 'c']
 */
const omitIndexes = curry((indexes, list) =>
  rejectIndexed(containsIndex(indexes), list)
);

export default omitIndexes;