javascript - 重写下划线_.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
的下划线库版本。我有一个测试用例无法通过,因为我不理解它。从以上测试条件来看;应用程序如何_.uniq
产生[1, 2]
最终结果?我看不出它试图让我在这里实现什么,因为这在任何意义上都不是独一无二的。有任何想法吗?
解决方案
_.uniq
第三个参数是在执行比较之前转换值的函数。
因此,您的初始数组变为[true, false, false, false, false, false]
,并_.uniq
根据此转换后的数组识别重复项。
由于只有两个唯一值 - true 和 false - 最终结果中只包含两个元素。
推荐阅读
- node.js - Bluebird Promises.map .then() :不工作
- amazon-web-services - BigQuery Transfer Service 不会从 S3 复制行
- powerbi - 计算两个分组平均值之间的差异?
- unit-testing - 强制 Cmake 首先使用系统包含路径
- mysql - 如何在 MySQL 中选择二进制数据类型列并显示为人类可读的格式
- git - 限制对特定设备的 Github 存储库访问
- webpack - Webpack 环境变量混淆
- r - ANOVA 输出中没有显着性代码
- swift - 以编程方式设置 rootViewController 不起作用,仅在 Xcode 11 中从情节提要中选择初始视图控制器
- javascript - 未捕获的类型错误:无法在 HTMLImageElement 处读取 null 的属性“classList”