//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/