{"ScriptPreparationCode":"const test = [\r\n {\r\n state: \u0027lorem\u0027,\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027ipsum\u0027\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027dolor\u0027\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027sit\u0027\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027foo\u0027\r\n }\r\n ]\r\n },\r\n {\r\n state: \u0027bar\u0027\r\n }\r\n]","TestCases":[{"Name":"flatMap","Code":"const test = [\r\n {\r\n state: \u0027lorem\u0027,\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027ipsum\u0027\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027dolor\u0027\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027sit\u0027\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027foo\u0027\r\n }\r\n ]\r\n },\r\n {\r\n state: \u0027bar\u0027\r\n }\r\n]\r\n\r\nconst res = (arr) =\u003E {\r\n return arr.flatMap((x) =\u003E {\r\n if (x.items?.length) {\r\n return res(x.items)\r\n }\r\n return x\r\n })\r\n}\r\n \r\nconsole.log(res(test))","IsDeferred":false},{"Name":"reduce","Code":"const test = [\r\n {\r\n state: \u0027lorem\u0027,\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027ipsum\u0027\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027dolor\u0027\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027sit\u0027\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n items: [\r\n {\r\n state: \u0027foo\u0027\r\n }\r\n ]\r\n },\r\n {\r\n state: \u0027bar\u0027\r\n }\r\n]\r\n\r\nconst res = (arr) =\u003E {\r\n return arr.reduce((acc, x) =\u003E {\r\n if (x.items?.length) {\r\n acc = [...acc, ...res(x.items)]\r\n } else {\r\n acc.push(x)\r\n }\r\n \r\n return acc\r\n }, [])\r\n}\r\n \r\nconsole.log(res(test))","IsDeferred":false}]}