_isEqual()
_isEqual() มาจาก library underscore และ lodash ใช้เปรียบเทียบ JavaScript objects จุดสำคัญ: ไม่สนใจลำดับ properties ตรวจสอบแค่ properties ในสองออบเจ็กต์เท่ากันหรือไม่ ในขณะที่ JSON.stringify() ตรวจสอบลำดับ properties ด้วย ทำให้ _isEqual() ดีกว่า
รูปแบบ
_.isEqual(object1, object2);
รับ 2 ออบเจ็กต์ ตรวจสอบความเท่ากัน
ตัวอย่างที่ 1
<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
ตัวอย่างที่ 2: ใช้ทั้ง JSON.stringify() และ _isEqual() ลำดับ properties สลับกัน _isEqual() คืน true แต่ JSON.stringify() คืน false
ตัวอย่างที่ 2
<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