gpt4 book ai didi

javascript - typescript 如何比较两个对象?

转载 作者:行者123 更新时间:2023-12-01 03:44:33 31 4
gpt4 key购买 nike

我有一个名为 tax 的类(class).

    export class tax {
private _id: string;
private _name: string;
private _percentage: number;`

constructor(id: string = "", taxName: string = "", percentage: number = 0) {
this._id = id;
this._name = taxName;
this._percentage = percentage;
}


public get id(): string {
return this._id;
}

public set id(v: string) {
this._id = v;
}
public get name(): string {
return this._name;
}

public set name(v: string) {
this._name = v;
}
public get percentage(): number {
return this._percentage;
}

public set percentage(v: number) {
this._percentage = v;
}

toString(){
return this.id;
}
}

当我创建该类的 2 个不同对象时

    a1: tax = new tax("id","name",4);
a2: tax = new tax("id","name",4);

console.log(a1 === a2); //false
console.log(a1 == a2); //false

当我给出 a1 === a2 时,它应该给出 true。我必须在类里面做哪些改变才能得到 a1 === a2 ?在税务类别中我必须做什么?或者我必须在税级中覆盖哪种方法?

最佳答案

您正在比较同一类的两个不同实例。尽管实例中的值相同,但它们是两个完全独立的实体。

例如,如果我们有一个带有单个属性 namePeople 类。即使世界上有两个人叫John Smith,他们也是两个完全不同的人。

每个实例都有自己的唯一标识符。

如果您想检查两种税的值是否完全相同,可以一一检查。

console.log(a1.getId() === a2.getId() && a1.getName() === a2.getName() && a1.getPercentage() === a2.getPercentage()) // true

有关比较对象的更多信息可以找到here

关于javascript - typescript 如何比较两个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43634154/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com