0%

对比对象是否相等

对比对象是否相等

在javascript中,判断string、number是否相等,可以使用==、===来进行判断,但是对object和array来说,使用相等运算符进行判断结果始终未false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var obj1 = {
name: "Benjamin",
sex : "male"
}

var obj2 = {
name: "Benjamin",
sex : "male"
}

//Outputs: false
console.log(obj1 == obj2);

//Outputs: false
console.log(obj1 === obj2);

通过上面的例子可以看到,无论使用”==”还是”===”,都返回false。主要原因是基本类型string,number通过值来比较,而对象(Date,Array)及普通对象通过指针指向的内存中的地址来做比较。

所以如果想要单纯的对比对象中的值是否相等,可以通过枚举对比对象中的属性或者直接饮用lodash库中的isEqual