Увлекательные задачки по Javascript

Дано

Массив чисел, произвольной длинны. Числа могут повторяться сколь угодно раз. Массив не отсортирован.

var data = [1,1,1,2,3,4,5,6,5,4,3,5,7,8,9,0,....];

Задача

Выбрать все уникальные значения.


Варианты решений

Используя Lo-dash/Underscore

var result = _.uniq(data)

ES5

var result = Object.keys(data.reduce((res,x,idx)=>res[x]=1&&res,{})).map(x=>Number(x))

ES5/ES6 — означает, что изменив синтаксис, но сохранив логику, можно использовать в ES5.

ES5/ES6 #1

var result = (a=>a.sort().filter((v,i)=>i===0||a[i]!==a[--i]))(data);

ES5/ES6 #2

var result = data.filter((x,i)=>i===data.lastIndexOf(x));

ES6 #1

let result = new Set(data)