Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Как найти различие между двумя массивами? (https://javascript.ru/forum/offtopic/43511-kak-najjti-razlichie-mezhdu-dvumya-massivami.html)

cyber 10.12.2013 00:30

бля, где я накосячил
http://learn.javascript.ru/play/yKRwuc

Maxmaxmaximus4 10.12.2013 00:31

cyber, консоль закрой когда тесты делаешь)
а еще у меня реплейсов нет, подразумевается что ВСЕ реплейсы) ну для ui это сделать дешево получается, очень дешево.



вот моя функция, работает ядерно быстро

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


  for (var i = 0, index; i < oArr.length; i++) {
    index = nArr.indexOf(oArr[i]);
    if (index < 0) remove.push(i);
    else nArr[index] = void 0;
  }

  for (var i = 0; i < nArr.length; i++) {
    if (nArr[i] === void 0) continue;
    var index = remove.indexOf(i);
    if (index < 0) insert.push(i);
    else remove.splice(index, 1);
  }

  return {
    insert: insert,
    remove: remove
  }
}

cyber 10.12.2013 00:33

Maxmaxmaximus4,
ты можешь еще компактней писать? (сарказм)

Нахрена void 0; почему просто нельзя написать undefined?

Maxmaxmaximus4 10.12.2013 00:36

Цитата:

Сообщение от cyber
почему просто нельзя написать undefined?

потому что я читаю как "ничтожный ноль" то есть полное ничего, а undefined это переменная, я боюсь её) вдруг там что лежит


Цитата:

Сообщение от cyber
ты можешь еще компактней писать? (сарказм)

когда я был маленький я писал как ты, теперь я понял что такой стиль лучше, у меня между функциями расстояние в 3 строки. в функциях в некоторых ВАЖНЫХ местах одна строка. и она не теряет ценность так как встречется редко и бросается в глаза. я осознанно решил использовать этот стиль и хотя он был мне и не привычный я решил его попробовать и он оказался крутой)

cyber 10.12.2013 00:38

Maxmaxmaximus4, нет , я реально индус, у меня ошибка не в новой функции а в старой)

cyber 10.12.2013 00:40

ну вот чем я думал когда писал такую проверку
search.forEach(function (elem, i) {      
        if(elem)
          insert.push(i);  
     
 });

Maxmaxmaximus4 10.12.2013 00:43

Цитата:

Сообщение от cyber
ну вот чем я думал когда писал такую проверку

ты удалял ключи делитом и думал что теперь в за место удаленных ключей будет undefined и проверял на него =) игнорируя что ты даже не ключь проверяешь, а значение) все просто

cyber 10.12.2013 00:43

Цитата:

Сообщение от Maxmaxmaximus4
когда я был маленький я писал как ты

эм, т.е большинство javascript библиотек, фреймворков пишут "маленькие" ?

cyber 10.12.2013 00:44

Цитата:

Сообщение от Maxmaxmaximus4
ты удалял ключи делитом и думал что теперь в за место удаленных ключей будет undefined и проверял на него =) игнорируя что ты даже не ключь проверяешь) все просто

вопрос был реторический))

Maxmaxmaximus4 10.12.2013 00:44

Цитата:

Сообщение от cyber
эм, т.е большинство javascript библиотек, фреймворков пишут "маленькие" ?

нет, я имел ввиду раньше я тоже писал как ты =) не бомби


Часовой пояс GMT +3, время: 10:10.