Step | Call Stack | Current Frame | Processing | Action | Result State |
---|---|---|---|---|---|
1 | F1: main object |
compactObject({a:null, b:[...], c:{...}}) | key "a" â value: null | đ Call compactObject(null) | result = {} |
2 | F1: main object F2: null |
compactObject(null) | obj == null | âŠī¸ RETURN null | - |
3 | F1: main object |
Back to F1 | compactedValue = null | â Boolean(null) = false, SKIP | result = {} |
4 | F1: main object |
F1 continues | key "b" â value: [false,1,0,"hello",""] | đ Call compactObject(array) | result = {} |
5 | F1: main object F3: array |
compactObject([false,1,0,"hello",""]) | key "0" â value: false | đ Call compactObject(false) | result = [] |
6 | F1: main object F3: array F4: false |
compactObject(false) | typeof false !== 'object' | âŠī¸ RETURN false | - |
7 | F1: main object F3: array |
Back to F3 | compactedValue = false | â Boolean(false) = false, SKIP | result = [] |
8 | F1: main object F3: array |
F3 continues | key "1" â value: 1 | đ Call compactObject(1) | result = [] |
9 | F1: main object F3: array F5: 1 |
compactObject(1) | typeof 1 !== 'object' | âŠī¸ RETURN 1 | - |
10 | F1: main object F3: array |
Back to F3 | compactedValue = 1 | â Boolean(1) = true, ADD | result = [1] |
11 | F1: main object F3: array |
F3 continues | key "2" â value: 0 | đ Call compactObject(0) â Return 0 | result = [1] |
12 | F1: main object F3: array |
Back to F3 | compactedValue = 0 | â Boolean(0) = false, SKIP | result = [1] |
13 | F1: main object F3: array |
F3 continues | key "3" â value: "hello" | đ Call compactObject("hello") â Return "hello" | result = [1] |
14 | F1: main object F3: array |
Back to F3 | compactedValue = "hello" | â Boolean("hello") = true, ADD | result = [1, "hello"] |
15 | F1: main object F3: array |
F3 continues | key "4" â value: "" | đ Call compactObject("") â Return "" | result = [1, "hello"] |
16 | F1: main object F3: array |
Back to F3 | compactedValue = "" | â Boolean("") = false, SKIP | result = [1, "hello"] |
17 | F1: main object F3: array |
F3 Complete | All keys processed | âŠī¸ RETURN [1, "hello"] | - |
18 | F1: main object |
Back to F1 | compactedValue = [1, "hello"] | â Boolean(array) = true, ADD | result = {b: [1, "hello"]} |
19 | F1: main object |
F1 continues | key "c" â value: {d:0, e:"world"} | đ Call compactObject(nested obj) | result = {b: [1, "hello"]} |
20 | F1: main object F9: nested obj |
compactObject({d:0, e:"world"}) | key "d" â value: 0 | đ Call compactObject(0) â Return 0 | result = {} |
21 | F1: main object F9: nested obj |
Back to F9 | compactedValue = 0 | â Boolean(0) = false, SKIP | result = {} |
22 | F1: main object F9: nested obj |
F9 continues | key "e" â value: "world" | đ Call compactObject("world") â Return "world" | result = {} |
23 | F1: main object F9: nested obj |
Back to F9 | compactedValue = "world" | â Boolean("world") = true, ADD | result = {e: "world"} |
24 | F1: main object F9: nested obj |
F9 Complete | All keys processed | âŠī¸ RETURN {e: "world"} | - |
25 | F1: main object |
Back to F1 | compactedValue = {e: "world"} | â Boolean(object) = true, ADD | result = {b: [1, "hello"], c: {e: "world"}} |
26 | đ¯ EMPTY | F1 Complete | All keys processed | âŠī¸ RETURN Final Result | FINAL: {b: [1, "hello"], c: {e: "world"}} |