{"ScriptPreparationCode":"var combined = {\r\n \u0027parent_1\u0027: [\r\n \u0027child_1\u0027,\r\n \u0027child_2\u0027,\r\n \u0027child_3\u0027\r\n ],\r\n \u0027parent_2\u0027: [\r\n \u0027child_4\u0027,\r\n \u0027child_5\u0027,\r\n \u0027child_6\u0027\r\n ],\r\n \u0027parent_4\u0027: [\r\n \u0027child_7\u0027,\r\n \u0027child_8\u0027,\r\n \u0027child_9\u0027\r\n ]\r\n};\r\n\r\nvar maybeDup = [\r\n \u0027child_1\u0027,\r\n \u0027child_5\u0027,\r\n \u0027child_9\u0027,\r\n \u0027child_10\u0027\r\n];","TestCases":[{"Name":"Double for and filter","Code":"for (let i = 0; i \u003C 10000; i\u002B\u002B) {\r\n let dup = [...maybeDup];\r\n for (let key in combined) {\r\n for (let val of combined[key]) {\r\n dup = dup.filter(x =\u003E x !== val);\r\n }\r\n }\r\n}","IsDeferred":false},{"Name":"Object values, flat and filter","Code":"for (let i = 0; i \u003C 10000; i\u002B\u002B) {\r\n let dup = [...maybeDup];\r\n for (let val of Object.values(combined).flat()) {\r\n dup = dup.filter(x =\u003E x !== val);\r\n }\r\n}","IsDeferred":false},{"Name":"Set and filter","Code":"for (let i = 0; i \u003C 10000; i\u002B\u002B) {\r\n let dup = new Set(...maybeDup);\r\n for (let val of Object.values(combined)) {\r\n if (dup.has(val)) {\r\n dup.delete(val); \r\n }\r\n }\r\n}","IsDeferred":false}]}