9

有没有一种简单的方法来测试 CoffeeScript 中对象的相等性?

或者更正确 - 测试两个对象的属性是否相同。

使用这些对象:

obj1 =
  name: "John Doe"
  age: "3.14"

obj2 =
  name: "John Doe"
  age: "3.14"

正如预期的那样,这评估为假:

obj1 == obj2

现在我正在使用下划线的 isEqual

4

2 回答 2

11

没有。CoffeeScript 没有将此作为语言功能提供,因此使用像 Underscore.js 这样的库是您的最佳选择。

于 2012-11-21T22:23:51.477 回答
0

您可以使用旧的备用:

JSON.stringify(obj1) == JSON.stringify(obj2)

这将完成这项工作 - 但对于某些工作来说可能效率太低。

您还可以将任意对象转换为一个类,并在该类上提供一个 equals 方法。

class Person
  constructor: (@name, @age) ->
  
  equals: (other) -> @name == other.name && @age == other.age 
于 2021-10-10T18:34:31.793 回答