deno.land / x / rambda@v9.1.1 / source / dropRepeatsBy.spec.js
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960import { dropRepeatsBy } from './dropRepeatsBy.js'
test('happy', () => { const fn = ({ i }) => ({ i : Math.abs(i) }) const objs = [ { i : 1 }, { i : 2 }, { i : 3 }, { i : -4 }, { i : 5 }, { i : 3 } ] const objs2 = [ { i : 1 }, { i : -1 }, { i : 1 }, { i : 2 }, { i : 3 }, { i : 3 }, { i : -4 }, { i : 4 }, { i : 5 }, { i : 3 }, ] expect(dropRepeatsBy(fn, objs2)).toEqual(objs) expect(dropRepeatsBy(fn, objs)).toEqual(objs)})
test('keeps elements from the left', () => { expect(dropRepeatsBy(({ n, ...rest }) => ({ ...rest }), [ { i : 1, n : 1, }, { i : 1, n : 2, }, { i : 1, n : 3, }, { i : 4, n : 1, }, { i : 4, n : 2, }, ])).toEqual([ { i : 1, n : 1, }, { i : 4, n : 1, }, ])})
test('returns an empty array for an empty array', () => { expect(dropRepeatsBy(() => {}, [])).toEqual([])})
Version Info