Skip to content

Commit e8096af

Browse files
Update deepFilter.js
1 parent 1f5370f commit e8096af

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

Interview Question/deepFilter.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,36 @@
11

2+
// https://leetcode.com/discuss/interview-question/328553/amazon-phone-screen-deep-filter
3+
const filter = (s) => typeof s === "string";
4+
const obj = {
5+
a: 1,
6+
b: {
7+
c: "Hello World",
8+
d: 2,
9+
e: {
10+
f: {
11+
g: -4,
12+
},
13+
},
14+
h: "Good Night Moon",
15+
},
16+
};
17+
18+
const deepFilter = (obj, filter) => {
19+
for (const key in obj) {
20+
const value = obj[key];
21+
if (typeof value === "object") {
22+
deepFilter(value, filter);
23+
} else {
24+
if (!filter(value)) {
25+
delete obj[key];
26+
}
27+
}
28+
29+
if (typeof obj[key] === "object" && Object.entries(obj[key]).length === 0) {
30+
delete obj[key];
31+
}
32+
}
33+
};
34+
35+
deepFilter(obj, filter);
36+
console.log(obj);

0 commit comments

Comments
 (0)