Попробовал более подробно прописать весь процесс в нескольких вариантах. На данный момент думаю что третий вариант с stringify самый адекватный.
В нём сначала ключи и значения запихнул по массивам, затем отсортировал, stringify-нул.
Начал проверку от длины массива ключей, проверяю потом равны ли между собой массивы ключей и напоследок проверяю равны ли массивы значений. По консоли вроде бы получаю, что нужно.
Но всё так же получаю ошибку на 3м тесте.
Не понимаю что делаю не так, помогите пожалуйста 😥
1)
let result = false;
console.log(Object.keys(obj1).length, Object.keys(obj2).length);
let arr1Keys = Object.keys(obj1);
let arr2Keys = Object.keys(obj2);
let arr1Values = Object.values(obj1);
let arr2Values = Object.values(obj2);
arr1Keys.sort;
arr2Keys.sort;
arr1Values.sort;
arr2Values.sort;
console.log(arr1Keys, arr2Keys);
console.log(arr1Values, arr2Values);
if (arr1Keys.length == arr2Keys.length) {
for (const item of arr1Keys && arr2Keys) {
if (arr1Keys == arr2Keys) {
for (const value of arr1Values && arr2Values) {
if (arr1Values == arr2Values) {
return true;
}
}
return false;
}
}
}
return false;
};
2)
export const isIdentical = (obj1, obj2) => {
let result = false;
console.log(Object.keys(obj1).length, Object.keys(obj2).length);
let arr1Keys = Object.keys(obj1);
let arr2Keys = Object.keys(obj2);
let arr1Values = Object.values(obj1);
let arr2Values = Object.values(obj2);
arr1Keys.sort;
arr2Keys.sort;
arr1Values.sort;
arr2Values.sort;
console.log(arr1Keys, arr2Keys);
console.log(arr1Values, arr2Values);
if (arr1Keys.length == arr2Keys.length) {
for (let i = 0; arr1Keys.length > i; i++) {
if (arr1Keys[i] == arr2Keys[i]) {
for (let j = 0; arr1Values.length > j; j++) {
if (arr1Values == arr2Values) {
result = true;
} else {
result = false;
}
}
} else {
result = false;
}
result = false;
}
} else {
result = false;
}
return result;
};
3)
export const isIdentical = (obj1, obj2) => {
let result = false;
let arr1Keys = Object.keys(obj1);
let arr2Keys = Object.keys(obj2);
let arr1Values = Object.values(obj1);
let arr2Values = Object.values(obj2);
arr1Keys.sort;
arr2Keys.sort;
arr1Values.sort;
arr2Values.sort;
arr1Keys = JSON.stringify(arr1Keys);
arr2Keys = JSON.stringify(arr2Keys);
arr1Values = JSON.stringify(arr1Values);
arr2Values = JSON.stringify(arr2Values);
if (arr1Keys.length === arr2Keys.length) {
console.log(arr1Keys.length, arr2Keys.length);
if (arr1Keys === arr2Keys) {
console.log(arr1Keys, arr2Keys);
if (arr1Values === arr2Values) {
console.log(arr1Values, arr2Values);
return true;
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
};