_isEqual()来自javascript的下划线 和lodash 库。它用于比较javascript对象。该方法的重要性在于,它在比较对象时并不关心属性的顺序。它仅检查两个对象中的属性是否相等。而用于比较对象的JSON.stringify()甚至检查对象属性的顺序,使_isEqual() 成为更好的选择。
_.isEqual(object1, object2);
它接受两个对象作为参数,并检查它们是否相等。
<html> <head> <script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> </head> <body> <script> var obj1 = {name: "Sikha", designation: "Content developer"}; var obj2 = {name: "Sikha", designation: "Content developer"}; document.write(_.isEqual(obj1, obj2)); </script> </body> </html>
true
在以下示例中,同时使用了JSON.stringify()和 _isEqual()方法。由于 _isEqual()方法的属性顺序不是问题,因此它输出为true,而JSON.stringify()输出为false。
<html> <head> <script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> </head> <body> <script> var obj1 = {name: "Sikha", designation: "Content developer"}; var obj2 = {designation: "Content developer", name: "Sikha"}; document.write(_.isEqual(obj1, obj2)); document.write("</br>"); document.write(JSON.stringify(obj1) === JSON.stringify(obj2)); </script> </body> </html>
true false