如何使用 JavaScript 检查两个对象是否具有相同的数据?
在 JavaScript 中,我们不能通过相等运算符(双等号 == 或三等号 ===)直接比较两个对象,以查看它们是否相等。像这样比较两个对象会导致错误,即使它们具有相同的数据。这是因为它们是两个不同的对象实例,它们指的是两个不同的对象。
javascript 中没有直接的方法来检查两个对象是否具有相同的数据。
下面是函数的伪代码,后面是代码片段:
伪代码:
function hasSameData
if both objects have the same number of keys (properties)
if every key of obj1 matches with the corresponding key
of obj2 and values of the same keys of both objects match.
return true
return false
方法:
- 我们将通过 Object.keys() 找到两个对象的键,它返回该对象的键数组。
- 为了检查obj1中的每个键是否也存在于obj2中,如果这些键的值匹配,我们将使用 every() 方法。 every()方法接受一个回调,并根据回调条件返回“true”或“false”。
例子:
javascript
javascript
输出:
true
注意:上述方法不适用于嵌套对象(对象和数组中的
目的)。在这种情况下,它需要根据嵌套对象的函数。
在嵌套对象的情况下应用上述函数将失败,如下所示:
javascript
输出:
false