【发布时间】:2015-04-22 07:50:41
【问题描述】:
我正在尝试用下划线比较两个对象。
对象 1(过滤器)
{
"tuxedoorsuit":"tuxedoorsuit-tuxedo",
"occasions":"occasions-wedding"
}
对象 2(属性)
{
"tuxedoorsuit":"tuxedoorsuit-tuxedo",
"occasions":"occasions-wedding",
"occasions":"occasions-prom",
"product_fit":"product_fit-slim",
"colorfamily":"colorfamily-black"
}
当在对象 2 中找到对象 1 的所有项目时,我想返回 true。对此使用的最佳下划线方法是什么?
【问题讨论】:
-
@ArnaldoIgnacioGasparVéjar:你应该这样回答。比目前公认的要好很多。
-
@Bergi :我同意
isMatch会好得多。但实际上有趣的是,它在这种情况下不起作用,因为“对象 2”格式不正确。它有两倍相同的属性occasions。 isMatch 将“对象 2”转换为标准对象,这只会保留此属性的最后一个值:occasions-prom。然后它将返回false。 -
@ArnaldoIgnacioGasparVéjar 啊,很好:) 我在我的回答中加入了
isMatch。谢谢:) -
@slaur4:事实上,对象语法格式错误会导致 parser 删除“first”值(或者,在严格模式下,抛出语法错误) .
isMatch不是这里的罪魁祸首,任何其他方法都可以同样工作 - 除非它将对象 2 作为 JSON 并在内部使用容错解析器。
标签: javascript object underscore.js