所有JavaScript文字对象是否彼此不同

sim*_*mmu 4 javascript

我有这个:

var g = [{a:'a'},{a:'2'},{a:'3'}]
var c = [{a:'4'},{a:'2'},{a:'5'}]
Run Code Online (Sandbox Code Playgroud)

以下声明:

g[1] == c[1]
Run Code Online (Sandbox Code Playgroud)

即使对象看起来相同,也返回false.有什么方法可以比较它们,所以它会让我真实而不是虚假吗?

nra*_*itz 6

您可以将它们编码为JSON:

JSON.stringify(g[1]) == JSON.stringify(c[1])
Run Code Online (Sandbox Code Playgroud)

您可能还对识别重复Javascript对象的相关问题的答案感兴趣.

对于更复杂的选项,您可以查看Underscore _.isEqual()函数的带注释的源代码(或者只使用库).