Выбрать уникальные значения из массива
Увлекательные задачки по 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)