-
Notifications
You must be signed in to change notification settings - Fork 0
/
Day22.js
46 lines (37 loc) · 804 Bytes
/
Day22.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Challenge 22
function deepEqual(obj1, obj2) {
if (typeof obj1 !== 'object' || typeof obj2 !== 'object') {
return obj1 === obj2;
}
if (obj1 === null && obj2 === null) {
return true;
}
const keys1 = Object.keys(obj1);
const keys2 = Object.keys(obj2);
if (keys1.length !== keys2.length) {
return false;
}
for (const key of keys1) {
if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key])) {
return false;
}
}
return true;
}
const objA = {
name: 'John',
age: 30,
address: {
city: 'New York',
zip: '10001'
}
};
const objB = {
name: 'John',
age: 30,
address: {
city: 'New York',
zip: '10001'
}
};
console.log(deepEqual(objA, objB));