typescript - 如果两个元组使用 Typescript 相等,你如何比较?
问题描述
标题说明了一切。正如您在下面看到的,比较包含相等值的 2 个元组以获取相等返回false
➜ algo-ts git:(master) ✗ ts-node
> const expected: [number, number] = [4, 4];
undefined
> const actual: [number, number] = [4, 4];
undefined
> actual == expected
false
> actual === expected
false
无论元组的类型如何,比较元组的惯用方法是什么?
解决方案
那是因为您正在比较您的元组引用而不是每个值的相等性。
只要您的元组仅包含原语,您就可以执行以下操作:
equals(expected:[number,number],actual:[number,number]): boolean{
return expected[0] === actual[0] && expected[1] === actual[1];
}
但是,如果您不想将元组与对象进行比较,则还需要为您的对象定义这样的 equals 函数。
这取决于具体类型应该如何实现 equals 方法,因此对象相等没有“灵丹妙药”。
推荐阅读
- abap - 删除存在于 2 个字符之间的特殊字符
- fits - 如何让 Source Extractor 分析图像?
- c# - 如果 razor 中的语句导致 2 列合并为一列
- sapui5 - SAP WEB IDE - 部署到 ABAP 时忽略除 .ttf 之外的所有字体文件
- python - 在 Python 中拟合此线性回归时出现问题
- javascript - 在 CHROME 中添加 javascript 和小 css 后,ASPX 页面以 110% 缩放打开
- pact - 提供程序测试与协议代理的集成,用于 Spring Boot junit5 + 应用程序属性中的配置
- docker - 詹金斯码头图像问题
- azure-data-factory - 天蓝色数据工厂查找活动 - 参数化 sql 查询
- excel - 检查列并复制是否相同