我一直在使用一套来存储和检索代表坐标的简单对象。
// Creates a point in hex coordinates
function hexPoint(q, r) {
this.q = q;
this.r = r;
}
我多次生成这些点,所以我有简单的坐标对来传递,但我希望能够以不存储重复坐标的方式存储它们。
ECMA 6 Set对象依赖于对测试对象相等性的引用,所以我想知道是否有办法为这个集合提供一个类似的函数,以便我可以允许它测试具有相同字段的新对象的相等性。否则,我还能做些什么来避免重新实现这个数据结构?
答案 0 :(得分:0)
为什么不添加isEqual(otherPoint)
?它可能看起来像:
function HexPoint(q, r) {
this.q = q;
this.r = r;
}
HexPoint.prototype.isEqual = function(otherPoint) {
return this.q === otherPoint.q && this.r === otherPoint.r;
}
然后您可以使用
创建HexPoint
的实例
var point = new HexPoint(...);
if (point.isEqual(someOtherPoint)) {
...
}
A similar Q&A指出尚未存在原生选项。