Показать сообщение отдельно
  #107 (permalink)  
Старый 10.12.2013, 00:05
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Китайский городовой, ЕПАТЬ Я БЛ** кактус, короче массив на 10к элементов за 200 милесекунд
http://learn.javascript.ru/play/20fUc
function compare(fArr,arr) {
    
    var search = arr.slice(),
        insert = [],
        remove = [],
        replace = [];
    
    for(var i = 0, index; i < fArr.length; i++) {
        
      if(fArr[i] === arr[i]){
        
       search[i] = null; // убираем на фиг delete
       continue;
      }
        
          
        index = search.indexOf(fArr[i]);

        if(!~index) {
          
            remove.push(i);
            continue;
        }
        
        i != index && replace.push({old: i, new: index});
        
         search[index] = null; // убираем на фиг delete

        };
    
    search.forEach(function (elem, i) {
        if(elem)
          insert.push(i);     
    });
    
    return {
        remove: remove,
        insert: insert,
        replace: replace
    }
    
}
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием