{"ScriptPreparationCode":"const arr = []\r\nfor(let i = 1; i \u003C 1000; i\u002B\u002B) {\r\n arr.push(\u0027 \u0027.repeat(i))\r\n}\r\nfor(let i = 1; i \u003C 100; i\u002B\u002B) {\r\n arr.push(\u0027\u0027);\r\n arr.push(\u0027 text \u0027.repeat(i))\r\n}\r\n\r\nconst run = (fn) =\u003E {\r\n const result = []\r\n for(const val of arr) {\r\n result.push(fn(val));\r\n }\r\n return result\r\n}","TestCases":[{"Name":"trim and always replace","Code":"run((val) =\u003E val.trim().replace(/\\s\u002B/g, \u0027 \u0027))","IsDeferred":false},{"Name":"trim and conditionally replace","Code":"run((val) =\u003E {\r\n const trimmed = val.trim();\r\n return trimmed \u0026\u0026 trimmed.replace(/\\s\u002B/g, \u0027 \u0027);\r\n})","IsDeferred":false},{"Name":"trim and conditionally replace with if","Code":"run((val) =\u003E {\r\n const trimmed = val.trim();\r\n if (trimmed === \u0027\u0027) {\r\n return \u0027\u0027;\r\n } else {\r\n return trimmed.replace(/\\s\u002B/g, \u0027 \u0027);\r\n }\r\n})","IsDeferred":false},{"Name":"always replace and trim","Code":"run((val) =\u003E val.replace(/\\s\u002B/g, \u0027 \u0027).trim())","IsDeferred":false},{"Name":"conditionally trim and conditionally replace","Code":"run((val) =\u003E {\r\n if(val === \u0027\u0027) {\r\n return val;\r\n }\r\n const trimmed = val.trim();\r\n if (trimmed === \u0027\u0027) {\r\n return trimmed;\r\n } else {\r\n return trimmed.replace(/\\s\u002B/g, \u0027 \u0027);\r\n }\r\n})","IsDeferred":false}]}