JavaScript中的相等运算符

时间:2019-01-28 18:16:16

标签: javascript

我是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中进行类似的对象比较?

1 个答案:

答案 0 :(得分:0)

JavaScript中的哈希映射是什么意思?这里没有这样的收藏。

无论如何,平等取决于data是什么。

如果其值为值类型(booleanstringnumber),则只需通过=====运算符进行比较。稍后的运算符会自动将方程式的任一侧或两侧(LHS / RHS)转换为相同的类型,因此满足以下条件:

this.data === other.data; // value comparison; e.g: 1 === 3; is false

如果其引用类型(arrayobject),则比较两个对象将导致内存地址检查,如果它们不同,则将导致错误。如果要比较它们的值,则必须迭代索引(对于array)或键(对于object),以检查是否相等。

this.data === other.data; // reference comparison; this.data = [1,2,3] (memory = 1234), other.data = [1,2,3] (memory = 1235); is false