Показать сообщение отдельно
  #144 (permalink)  
Старый 10.12.2013, 01:27
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от Maxmaxmaximus4
 
Регистрация: 08.12.2013
Сообщений: 142

Сообщение от cyber
У меня даже ИЕ forEach быстрей обрабатывает))
у меня разницы нет, но оставлю так потому что красивее:

function compare(oArr, arr) {
  var nArr = arr.slice();
  var insert = []
  var remove = []

  oArr.forEach(function(val, i) {
    var index = nArr.indexOf(val);
    if (index < 0) remove.push(i);
    else nArr[index] = void 0;
  });

  nArr.forEach(function(val, i) {
    if (val === void 0) return;
    var index = remove.indexOf(i);
    if (index < 0) insert.push(i);
    else remove.splice(index, 1);
  });

  return {
    insert: insert,
    remove: remove
  }
}
Ответить с цитированием