{"ScriptPreparationCode":"function getRandomInt(max) {\r\n return Math.floor(Math.random() * Math.floor(max));\r\n}\r\n\r\nfunction getValueAt(object, path) {\r\n const pathParts = path.split(\u0027.\u0027);\r\n\r\n return pathParts.reduce((agg, item) =\u003E agg \u0026\u0026 agg[item], object);\r\n}\r\n\r\nfunction orderBy(data, sortKey, sortValue) {\r\n for (let i = 0; i \u003C sortKey.length; i\u002B\u002B) {\r\n data.sort((a, b) =\u003E {\r\n if (sortValue[i] === \u0027asc\u0027) {\r\n return getValueAt(a, sortKey[i]) \u003E getValueAt(b, sortKey[i]) ? 1 : 0;\r\n }\r\n\r\n if (sortValue[i] === \u0027desc\u0027) {\r\n return getValueAt(b, sortKey[i]) \u003C getValueAt(a, sortKey[i]) ? -1 : 0;\r\n }\r\n });\r\n }\r\n return data;\r\n}\r\n\r\nvar arr = [];\r\nfor(var i = 0; i \u003C 100000; i\u002B\u002B){\r\n arr.push({data:{value:getRandomInt(100)}});\r\n}","TestCases":[{"Name":"_.orderBy","Code":"_.orderBy(arr,\u0022data.value\u0022, \u0022desc\u0022);","IsDeferred":false},{"Name":"custom","Code":"orderBy(arr, [\u0022data.value\u0022], [\u0022desc\u0022]);","IsDeferred":false}]}