в нём 5000000 словарей,мне нужно найти словарь с n значением
soLongArray =[{}*5000000]
1-
getElement = function(offset) {
var findDict = soLongArray.find(function(element) { return element.offset >= offset - 1; });
return findDict;
};
2-
function profitSearch(arrayDict,offset){
while (arrayDict[Math.floor(arrayDict.length/2)].offset<offset){
arrayDict = arrayDict.slice(Math.floor(arrayDict.length/2))
}
return arrayDict
}
getElement2 = function(offset) {
let slicedArray = profitSearch(
soLongArray
.slice(), offset)
var findDict = slicedArray.find(function(element) { return element.offset >= offset - 1; });
return findDict;
};
1 быстрее 2 . Почему? мб я что то делаю не так?)
ну, 1 просто поиск, а во 2 там какая-то математика произошла
я уже чуть подфиксил, там проблема была в том , что slice() ,больших элементов очень затратный, нужно было просто индексы скалировать, мб ещё какт можно оптимизровать. Спс за ответ 😄👍
зачем эти велосипеды? алгоритмы учите?
все эти условия каждый раз считать нужно или можно один раз и запомнить?
Обсуждают сегодня