3 ms·
That's exactly what came to mind immediately. Can't help but make a one-liner: Object.values(arr.reduce((o,s,i,a,k=s.toLowerCase()) => ((o[k] || (o[k]=s)),
by ricardobeat 8y ago
That's exactly what came to mind immediately. Can't help but make a one-liner:
Object.values(arr.reduce((o,s,i,a,k=s.toLowerCase()) => ((o[k] || (o[k]=s)), o), {}))
Which turns out to be pretty efficient: each string seen once, low memory overhead. Or a simpler version using Set:
let set = new Set()
arr.filter((s, i, c, k = s.toLowerCase()) => !set.has(k) && set.add(k))