在某些情况下,可能需要判断两个数组是否相同,但有时这些数组并不完全由数字组成,可能包含一个或多个字典或数组对象,所以我们需要一个递归算法来判断它们是否相同
当然,我们不能使用===来完成这项任务,下面是我的代码
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);
}