Показать сообщение отдельно
  #10 (permalink)  
Старый 19.06.2013, 11:20
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

Lynatik,
Сообщение от рони
если вы сами формируите массив -- то можно создать обьект где ключами будут id, а значениями индексы массива, тогда поиск будет почти мгновенный.
А если хешей не будет и массив не упорядочен, то можно использовать такой поиск:
function Obj(id){
    this.id = id
}
 
var arr = [];
 
for (var j = 0; j < 5000000; j++){
    var obj = new Obj(j);
    arr.push(obj); 
}
 
var init="time";
const FINDID = 4999999;
 
function findEl(array) {
    array[array.length] = new Obj(FINDID);
    for (var i = 0; array[i].id != FINDID ; i++){}
    if (i == (array.length - 1))
         alert( "Искомое значение не найдено." );
    else
         alert( i );
}
console.time(init);
findEl(arr);
console.timeEnd(init);
Ответить с цитированием