Skip to content

Commit 0a09892

Browse files
committed
passing all tests, functioning as expected
1 parent 3b0fc3a commit 0a09892

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

src/recursion.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,32 @@ const nFactorial = (n) => {
2323

2424
/* Extra Credit */
2525
const checkMatchingLeaves = (obj) => {
26-
// return true if every property on `obj` is the same
27-
// otherwise return false
26+
const vals = Object.values(obj);
27+
let flattened = [];
28+
let tempVal;
29+
let allSame = true;
30+
31+
const flatten = (elements) => {
32+
let newArr = [];
33+
for (let i = 0; i < elements.length; i++) {
34+
if (typeof elements[i] === 'object') {
35+
const temp = Object.values(elements[i]);
36+
newArr = newArr.concat(flatten(Object.values(temp)));
37+
} else {
38+
newArr.push(elements[i]);
39+
}
40+
}
41+
return newArr;
42+
};
43+
44+
flattened = flatten(vals);
45+
46+
flattened.forEach((i) => {
47+
tempVal = flattened[0];
48+
if (i !== tempVal) allSame = false;
49+
});
50+
51+
return allSame;
2852
};
2953

3054
/* eslint-enable no-unused-vars */

0 commit comments

Comments
 (0)