দুটি দ্বিমাত্রিক অ্যারে (ম্যাট্রিক্স) একে অপরের সমান কিনা তা চেক করার পদ্ধতি।
সমতায়ের শর্তাবলী
- একই সাইজের রো এবং কলাম
- প্রতিটি অবস্থানে
arr1[i][j] === arr2[i][j]
সমাধান
const areEqual = (arr1, arr2) => {
// দ্রুত ফেইল: রো সংখ্যা চেক
if (arr1.length !== arr2.length) return false;
for (let i = 0; i < arr1.length; i++) {
const row1 = arr1[i];
const row2 = arr2[i];
// কলাম সংখ্যা চেক
if (row1.length !== row2.length) return false;
// প্রতিটি উপাদান চেক
for (let j = 0; j < row1.length; j++) {
if (row1[j] !== row2[j]) return false;
}
}
return true;
};
// টেস্ট
const arr1 = [
[1, 1, 1],
[2, 2, 2],
[3, 3, 3]
];
const arr2 = [
[1, 1, 1],
[2, 2, 2],
[3, 3, 3]
];
const arr3 = [
[1, 1, 1],
[2, 2, 2],
[3, 3, 4] // আলাদা
];
console.log(areEqual(arr1, arr2)); // true
console.log(areEqual(arr1, arr3)); // false
ফাংশনাল পদ্ধতি (ES6+)
const areEqualFP = (arr1, arr2) =>
arr1.length === arr2.length &&
arr1.every((row, i) =>
row.length === arr2[i].length &&
row.every((val, j) => val === arr2[i][j])
);
ডিপ ইকোয়ালিটি (নেস্টেড অবজেক্ট/অ্যারে)
const deepEqual = (a, b) => JSON.stringify(a) === JSON.stringify(b); // নোট: কী অর্ডার önemli, ফাংশন/অনডিফাইনড হ্যান্ডল করে না
উৎপাদন
true