rambdax
Version:
Extended version of Rambda - a lightweight, faster alternative to Ramda
22 lines (15 loc) • 466 B
JavaScript
import { equals } from './equals.js'
export function dropRepeatsBy(fn, list){
if (arguments.length === 1) return _list => dropRepeatsBy(fn, _list)
let lastEvaluated = null
return list.slice().filter(item => {
if (lastEvaluated === null){
lastEvaluated = fn(item)
return true
}
const evaluatedResult = fn(item)
if (equals(lastEvaluated, evaluatedResult)) return false
lastEvaluated = evaluatedResult
return true
})
}