重写下划线_.uniq


//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]);

快速提问。我正在Undercore库中编写我自己版本的_.uniq。我有一个测试用例,我不能通过,因为我不理解它;应用_.uniq如何产生[1, 2]作为最终结果?我看不出它试图让我在这里实现什么,因为这在任何意义上都不是独一无二的。有什么想法吗?

第三个参数是在_.uniq执行比较之前转换值的函数。

因此,您的初始数组变为[true, false, false, false, false, false],而_.uniq基于这个转换后的数组识别重复数组。

由于只有两个唯一值(true和false(,因此最终结果中只包含两个元素。

最新更新