//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 from the Underscore library版本。我有一个无法简单通过的测试案例,因为我不理解它。根据以上测试条件;应用_.uniq如何产生[1, 2]作为最终结果?我看不到它试图使我在这里实现什么,因为这在任何意义上都不是唯一的。有任何想法吗?

最佳答案

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

因此,您的初始数组变为[true, false, false, false, false, false],而_.uniq根据此转换后的数组标识重复项。

由于只有两个唯一值-true和false-最终结果中仅包含两个元素。

关于javascript - 重写下划线_.uniq,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60591588/

10-13 06:31