【发布时间】:2017-01-02 17:23:06
【问题描述】:
使用 underscore.js 我试图比较两个对象,如果它们相同,我想返回 true。为此,我使用 _.isEqual()。
var a = {0: "2", 1: "11", 2: "1"}
var b = {0: "2", 1: "11", 2: "1"}
_.isEqual(a, b) // returns true
按预期工作。我遇到的问题是,在给定时间我可能没有来自其中一个对象的所有数据。让我们使用这个例子:
var a = {0: "2", 1: undefined, 2: undefined}
var b = {0: "2", 1: "11", 2: "1"}
_.isEqual(a, b) // returns false
如果比较的某些值未定义,我想要一种方法(显然不使用 ._isEqual)来返回 true。有什么想法吗?
【问题讨论】:
-
那么
_.isAlmostEqual()?如果您只处理简单的、非嵌套对象(如所示对象),您只需大约四行代码即可编写自己的比较函数。如果您想允许嵌套对象,我相信您可以采用现有解决方案之一(包括 Underscore 的)并将其修改为忽略未定义的属性。 -
我不认为这是一个下划线的方法......哈哈
标签: javascript jquery object underscore.js javascript-objects