我是javascript新手,因此是个问题。我有以下对象,
class Node{
constructor(data){
this.data = data;
this.adjacencySet = new Set();
}
addEdge(node){
this.adjacencySet.add(node)
}
getAdjacentVertices(){
return this.adjacencySet;
}
}
如何检查哈希图中是否存在此对象。打个比方,在Python中,我将在类中添加以下方法,
def __eq__(self, other):
return this.data == other.data
如何在javascript中进行类似的对象比较?
答案 0 :(得分:0)
JavaScript中的哈希映射是什么意思?这里没有这样的收藏。
无论如何,平等取决于data
是什么。
如果其值为值类型(boolean
,string
,number
),则只需通过===
或==
运算符进行比较。稍后的运算符会自动将方程式的任一侧或两侧(LHS / RHS)转换为相同的类型,因此满足以下条件:
this.data === other.data; // value comparison; e.g: 1 === 3; is false
如果其引用类型(array
,object
),则比较两个对象将导致内存地址检查,如果它们不同,则将导致错误。如果要比较它们的值,则必须迭代索引(对于array
)或键(对于object
),以检查是否相等。
this.data === other.data; // reference comparison; this.data = [1,2,3] (memory = 1234), other.data = [1,2,3] (memory = 1235); is false