在JavaScript中,Array.prototype.includes()
函数用于判断数组是否包含某个元素。当比较对象时,includes()
函数会使用严格相等运算符(===)来进行比较。
下面是一个使用includes()
函数比较对象的示例代码:
const obj1 = { name: 'Alice', age: 25 };
const obj2 = { name: 'Bob', age: 30 };
const obj3 = { name: 'Alice', age: 25 };
const array = [obj1, obj2];
console.log(array.includes(obj1)); // true
console.log(array.includes(obj2)); // true
console.log(array.includes(obj3)); // false
在这个示例中,我们创建了三个对象obj1
,obj2
和obj3
,obj1
和obj3
的属性值是相同的。然后,我们将obj1
和obj2
添加到数组array
中。
接下来,我们使用includes()
函数来判断对象是否在数组中。我们使用obj1
作为参数调用includes()
函数,它返回true
,因为obj1
与数组中的一个元素相等。同样,使用obj2
作为参数也会返回true
,因为obj2
也在数组中。然而,使用obj3
作为参数调用includes()
函数将返回false
,因为obj3
虽然与数组中的一个元素属性值相等,但不是同一个对象。
需要注意的是,includes()
函数是通过引用来比较对象的,而不是通过对象的内容来比较。只有当两个对象引用的是同一个对象时,includes()
函数才会返回true
。