diff --git a/src/omitIndexes.js b/src/omitIndexes.js index f21bdbeb57..108ff98b42 100644 --- a/src/omitIndexes.js +++ b/src/omitIndexes.js @@ -1,5 +1,9 @@ import { contains, curry, addIndex, reject } from 'ramda'; +// helpers +const rejectIndexed = addIndex(reject); +const containsIndex = curry((indexes, val, index) => contains(index, indexes)); + /** * Returns a partial copy of an array omitting the indexes specified. * @@ -16,11 +20,6 @@ import { contains, curry, addIndex, reject } from 'ramda'; * * RA.omitIndexes([-1, 1, 3], ['a', 'b', 'c', 'd']); //=> ['a', 'c'] */ - -// helpers -const rejectIndexed = addIndex(reject); -const containsIndex = curry((indexes, val, index) => contains(index, indexes)); - const omitIndexes = curry((indexes, list) => rejectIndexed(containsIndex(indexes), list)); export default omitIndexes; diff --git a/test/omitIndexes.js b/test/omitIndexes.js index 9c84671595..54ad2ffab3 100644 --- a/test/omitIndexes.js +++ b/test/omitIndexes.js @@ -19,4 +19,28 @@ describe('omitIndexes', function() { eq(RA.omitIndexes(indexes, arr), expected); }); + + it('tests when empty indexes', function() { + const indexes = []; + const arr = ['a', 'b', 'c', 'd']; + const expected = arr; + + eq(RA.omitIndexes(indexes, arr), expected); + }); + + it('tests when empty list', function() { + const indexes = [1, 3]; + const arr = []; + const expected = arr; + + eq(RA.omitIndexes(indexes, arr), expected); + }); + + it('tests when empty indexes and list', function() { + const indexes = []; + const arr = []; + const expected = arr; + + eq(RA.omitIndexes(indexes, arr), expected); + }); });