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

Maxmaxmaximus4,
лови, теперь с блэкджеком и replace
Array.prototype.compare = function(arr) {
    
    var search = arr.slice(),
        insert = [],
        remove = [],
        replace = [];
    
    for(var i = 0, index; i < this.length; i++) {
        
        index = search.indexOf(this[i]);

		if(!~index) {
          
			remove.push(i);
            continue;
        }
        
      	i != index && replace.push({old: i, new: index});
        
        delete search[index];

	};
    
    search.forEach(function (elem, i) {
        if(elem)
          insert.push(i);     
    });
    
    return {
        remove: remove,
        insert: insert,
      	replace: replace
    }
    
}


console.log([1, 2, 3, 4, 5].compare([1, 2, 3, 5, 4, 45]));
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием