在某些情況下,可能需要判斷兩個數組是否相同,但有時這些數組並不完全由數字組成,可能包含一個或多個字典或數組對象,所以我們需要一個遞歸算法來判斷它們是否相同
當然,我們不能使用===來完成這項任務,下面是我的代碼
export function arrayIdentical(arr1,arr2){
let loop = (data1, data2) => {
if (data1 instanceof Object && data2 instanceof Object) {
if (Object.keys(data1).length !== Object.keys(data2).length) return false;
for(let item in data1){
if (!(item in data2)) return false;
if (!loop(data1[item], data2[item])) return false;
}
return true;
}
if (data1 === data2) return true;
return false;
}
return loop(arr1, arr2);
}