{"ScriptPreparationCode":"// Create an array of 1000 random intergers between 1 and 10000\r\nvar arrRandom = [];\r\nfor(var intCtr=0; intCtr\u003C1000; intCtr\u002B\u002B) {\r\n arrRandom.push(Math.floor(Math.random() * Math.floor(10000)));\r\n}\r\n\r\nfunction reduceCallback(accum, curr, index) {\r\n\taccum[curr] = index;\r\n \treturn accum;\r\n}\r\n\r\nfunction doRedeuce(pArray) {\r\n\treturn pArray.reduce(reduceCallback, {});\r\n}\r\nfunction doLoop(pArray) {\r\n\tvar accum = {};\r\n\tfor(var index=0; index\u003CpArray.length; index\u002B\u002B) {\r\n\t\taccum[pArray[index]] = index;\r\n\t}\r\n\treturn accum;\r\n}\r\nfunction decrWhile(pArray) {\r\n\tvar accum = {};\r\n \tvar index = pArray.length;\r\n\twhile(index--) {\r\n\t\taccum[pArray[index]] = index;\r\n\t}\r\n\treturn accum;\r\n}\r\nfunction doForEach(pArray) {\r\n\tvar accum = {};\r\n\tpArray.forEach(function(item, index) {\r\n\t\taccum[item] = index;\r\n\t});\r\n return accum;\r\n}","TestCases":[{"Name":"reduce","Code":"var redeuceResult = doRedeuce(arrRandom);","IsDeferred":false},{"Name":"for loop","Code":"var loopResult = doLoop(arrRandom);","IsDeferred":false},{"Name":"forEach ","Code":"var forEachResult = doForEach(arrRandom);","IsDeferred":false},{"Name":"decrement while","Code":"var decrWhileResult=0;\r\ndecrWhileResult = decrWhile(arrRandom);","IsDeferred":false}]}