เปรียบเทียบอาร์เรย์ 2 มิติ (2D Arrays) ว่าเท่ากันทุกค่าหรือไม่ ต้องมีขนาดแถวและคอลัมน์เท่ากัน
ตัวอย่างโค้ด
const arr1 = [
[1, 1, 1],
[2, 2, 2],
[3, 3, 3]
];
const arr2 = [
[1, 1, 1],
[2, 2, 2],
[3, 3, 3]
];
const areEqual = (first, second) => {
if (first.length !== second.length) return false;
for (let i = 0; i < first.length; i++) {
if (first[i].length !== second[i].length) return false;
for (let j = 0; j < first[i].length; j++) {
if (first[i][j] !== second[i][j]) return false;
}
}
return true;
};
console.log(areEqual(arr1, arr2));
ผลลัพธ์
true
วิธีแบบ JSON (สำหรับข้อมูลเรียบง่าย)
const areEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b);
ข้อจำกัด: JSON.stringify ไม่รองรับ Function, Symbol, undefined, Circular reference
วิธีแบบ Deep Equality (ทันสมัย)
const deepEqual = (a, b) => {
if (a === b) return true;
if (typeof a !== 'object' || typeof b !== 'object' || !a || !b) return false;
const keysA = Object.keys(a), keysB = Object.keys(b);
if (keysA.length !== keysB.length) return false;
return keysA.every(key => deepEqual(a[key], b[key]));
};