重写下划线 _.uniq
Re-writing underscore _.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]);
快速提问。我正在编写我自己的 _.uniq
from the Underscore library 版本。我有一个无法通过的测试用例,仅仅是因为我不理解它。从以上测试条件来看;应用 _.uniq
如何产生 [1, 2]
作为最终结果?我不明白它试图让我在这里实施什么,因为它在任何意义上都不是独一无二的。有什么想法吗?
第三个参数是在 _.uniq
执行比较之前转换值的函数。
因此您的初始数组变为 [true, false, false, false, false, false]
,并且 _.uniq
根据此转换后的数组识别重复项。
由于只有两个唯一值 - true 和 false - 最终结果中只包含两个元素。
//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 - 最终结果中只包含两个元素。