{"ScriptPreparationCode":"window.data = [\r\n [\r\n \u0022155.040\u0022,\r\n \u00220.0\u0022\r\n ]\r\n]\r\n\r\nwindow.state = {\r\n entityById: {\r\n \u0022155.050\u0022: {\r\n \u0022amount\u0022: 425.2\r\n },\r\n \u0022155.060\u0022: {\r\n \u0022amount\u0022: 1471.5\r\n },\r\n \u0022155.070\u0022: {\r\n \u0022amount\u0022: 678.5\r\n },\r\n \u0022155.080\u0022: {\r\n \u0022amount\u0022: 637.5\r\n },\r\n \u0022155.090\u0022: {\r\n \u0022amount\u0022: 966.6\r\n },\r\n \u0022155.100\u0022: {\r\n \u0022amount\u0022: 343.2\r\n },\r\n \u0022155.110\u0022: {\r\n \u0022amount\u0022: 1116.7\r\n },\r\n \u0022155.120\u0022: {\r\n \u0022amount\u0022: 557.1\r\n },\r\n \u0022155.130\u0022: {\r\n \u0022amount\u0022: 570.2\r\n },\r\n \u0022155.140\u0022: {\r\n \u0022amount\u0022: 91.2\r\n },\r\n \u0022155.150\u0022: {\r\n \u0022amount\u0022: 1509.4\r\n },\r\n \u0022155.160\u0022: {\r\n \u0022amount\u0022: 763.6\r\n },\r\n \u0022155.170\u0022: {\r\n \u0022amount\u0022: 707.3\r\n },\r\n \u0022155.180\u0022: {\r\n \u0022amount\u0022: 80.8\r\n },\r\n \u0022155.190\u0022: {\r\n \u0022amount\u0022: 78.8\r\n },\r\n \u0022155.200\u0022: {\r\n \u0022amount\u0022: 194.3\r\n },\r\n \u0022155.210\u0022: {\r\n \u0022amount\u0022: 698.2\r\n },\r\n \u0022155.220\u0022: {\r\n \u0022amount\u0022: 799.6\r\n },\r\n \u0022155.230\u0022: {\r\n \u0022amount\u0022: 573.3\r\n },\r\n \u0022155.240\u0022: {\r\n \u0022amount\u0022: 631.5\r\n },\r\n \u0022155.250\u0022: {\r\n \u0022amount\u0022: 1011.7\r\n },\r\n \u0022155.260\u0022: {\r\n \u0022amount\u0022: 165.4\r\n },\r\n \u0022155.270\u0022: {\r\n \u0022amount\u0022: 1299.1\r\n },\r\n \u0022155.280\u0022: {\r\n \u0022amount\u0022: 716\r\n },\r\n \u0022155.290\u0022: {\r\n \u0022amount\u0022: 2051.1\r\n },\r\n \u0022155.300\u0022: {\r\n \u0022amount\u0022: 291\r\n },\r\n \u0022155.310\u0022: {\r\n \u0022amount\u0022: 1434.9\r\n },\r\n \u0022155.320\u0022: {\r\n \u0022amount\u0022: 785.8\r\n },\r\n \u0022155.330\u0022: {\r\n \u0022amount\u0022: 703.9\r\n },\r\n \u0022155.340\u0022: {\r\n \u0022amount\u0022: 253.5\r\n },\r\n \u0022155.350\u0022: {\r\n \u0022amount\u0022: 343.1\r\n },\r\n \u0022155.360\u0022: {\r\n \u0022amount\u0022: 1310.2\r\n },\r\n \u0022155.370\u0022: {\r\n \u0022amount\u0022: 1071.7\r\n },\r\n \u0022155.380\u0022: {\r\n \u0022amount\u0022: 494.3\r\n },\r\n \u0022155.390\u0022: {\r\n \u0022amount\u0022: 239.8\r\n },\r\n \u0022155.400\u0022: {\r\n \u0022amount\u0022: 42.1\r\n },\r\n \u0022155.410\u0022: {\r\n \u0022amount\u0022: 1044.6\r\n },\r\n \u0022155.450\u0022: {\r\n \u0022amount\u0022: 670.5\r\n },\r\n \u0022155.460\u0022: {\r\n \u0022amount\u0022: 355.5\r\n },\r\n \u0022155.500\u0022: {\r\n \u0022amount\u0022: 52.8\r\n },\r\n \u0022155.580\u0022: {\r\n \u0022amount\u0022: 3.3\r\n },\r\n \u0022155.590\u0022: {\r\n \u0022amount\u0022: 350.6\r\n },\r\n \u0022155.600\u0022: {\r\n \u0022amount\u0022: 656\r\n },\r\n \u0022155.620\u0022: {\r\n \u0022amount\u0022: 333.6\r\n },\r\n \u0022155.640\u0022: {\r\n \u0022amount\u0022: 85.2\r\n },\r\n \u0022155.650\u0022: {\r\n \u0022amount\u0022: 499.9\r\n }\r\n }\r\n}","TestCases":[{"Name":"original","Code":"function getEntityById(state, data) {\r\n const entityById = { ...state.entityById }\r\n data.forEach(([price, _amount]) =\u003E {\r\n const amount = Number(_amount)\r\n if (amount === 0) {\r\n delete entityById[price]\r\n } else {\r\n entityById[price] = { amount }\r\n }\r\n })\r\n const dataMap = data.reduce((acc, d) =\u003E {\r\n acc[d[0]] = Number(d[1])\r\n\r\n return acc\r\n }, {})\r\n\r\n return entityById\r\n}\r\n\r\ngetEntityById(window.state, window.data)","IsDeferred":false},{"Name":"alter","Code":"function getEntityById(state, data) {\r\n const dataMap = data.reduce((acc, d) =\u003E {\r\n acc[d[0]] = Number(d[1])\r\n\r\n return acc\r\n }, {})\r\n \r\n const newEntityById = Object.keys(state.entityById).reduce((acc, price) =\u003E {\r\n const dataAmount = dataMap[price]\r\n if (dataAmount === undefined) {\r\n acc[price] = state.entityById[price]\r\n } else if (dataAmount !== 0) {\r\n acc[price] = { amount: dataAmount } // update or add\r\n }\r\n return acc\r\n }, {})\r\n return newEntityById\r\n}\r\n\r\ngetEntityById(window.state, window.data)","IsDeferred":false}]}