有没有一种简单的方法来测试 CoffeeScript 中对象的相等性?
或者更正确 - 测试两个对象的属性是否相同。
使用这些对象:
obj1 =
name: "John Doe"
age: "3.14"
obj2 =
name: "John Doe"
age: "3.14"
正如预期的那样,这评估为假:
obj1 == obj2
现在我正在使用下划线的 isEqual
有没有一种简单的方法来测试 CoffeeScript 中对象的相等性?
或者更正确 - 测试两个对象的属性是否相同。
使用这些对象:
obj1 =
name: "John Doe"
age: "3.14"
obj2 =
name: "John Doe"
age: "3.14"
正如预期的那样,这评估为假:
obj1 == obj2
现在我正在使用下划线的 isEqual
没有。CoffeeScript 没有将此作为语言功能提供,因此使用像 Underscore.js 这样的库是您的最佳选择。
您可以使用旧的备用:
JSON.stringify(obj1) == JSON.stringify(obj2)
这将完成这项工作 - 但对于某些工作来说可能效率太低。
您还可以将任意对象转换为一个类,并在该类上提供一个 equals 方法。
class Person
constructor: (@name, @age) ->
equals: (other) -> @name == other.name && @age == other.age