Переписывание подчеркивания _.uniq - PullRequest
0 голосов
/ 08 марта 2020
//for a sorted array
var iterator = function(value) { return value === 1; };
var numbers = [1, 2, 2, 3, 4, 4];

expect(_.uniq(numbers, true, iterator)).to.eql([1, 2]);

Быстрый вопрос. Я пишу свою собственную версию _.uniq из библиотеки Underscore . У меня есть один контрольный пример, который я не могу пройти просто потому, что не понимаю его. Из приведенных выше условий испытаний; Как применение _.uniq может привести к [1, 2] в качестве конечного результата? Я не понимаю, что он пытается заставить меня реализовать здесь, поскольку это даже не уникально в любом смысле. Есть идеи?

1 Ответ

1 голос
/ 08 марта 2020

Третий аргумент - это функция, которая преобразует значения до того, как _.uniq выполнит сравнение.

Таким образом, ваш начальный массив становится [true, false, false, false, false, false], а _.uniq идентифицирует дубликаты на основе этого преобразованного массива.

Поскольку существует только два уникальных значения - true и false - в конечный результат включаются только два элемента.

...