{"ScriptPreparationCode":"var arr = [];\r\n\r\nfor(let i = 0; i \u003C 5000; i\u002B\u002B){\r\n arr.push({ price: i })\r\n}\r\n\r\nfunction sortedIndexBy(array, comparator) {\r\n let min = 0\r\n let max = array.length\r\n let index = Math.floor((min \u002B max) / 2)\r\n while (max \u003E min) {\r\n if (comparator(array[index]) \u003C 0) {\r\n max = index\r\n } else {\r\n min = index \u002B 1\r\n }\r\n index = Math.floor((min \u002B max) / 2)\r\n }\r\n return index - 1\r\n}\r\n","TestCases":[{"Name":"lodash sortedIndexBy()","Code":"_.sortedIndexBy(arr, {price: 4242}, \u0027price\u0027)","IsDeferred":false},{"Name":"native findIndex()","Code":"arr.findIndex((o) =\u003E o.price === 4242)","IsDeferred":false},{"Name":"custom sortedIndexBy()","Code":"sortedIndexBy(arr, (o) =\u003E (4242 \u003E o.price ? 1 : (4242 \u003C o.price ? -1 : 0)))","IsDeferred":false}]}