Показать сообщение отдельно
  #7 (permalink)  
Старый 20.06.2013, 20:32
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Сообщение от harold
Пересечение двух массивов arr1 и arr2 - элементы, которые присутствуют в обоих массивах.

В результирующих массивах не должно быть одинаковых элементов, даже если во входных массивах есть одинаковые элементы.
Застрял на этом пункте задания
Вот не самый эффективный вариант, но с учётом дублей и кроссбраузерно

function Intersection(A,B)
{
    var M=A.length, N=B.length, C=[];
 
    for (var i=0; i<M; i++)
     { var j=0, k=0;
       while (B[j]!==A[i] && j<N) j++;
       while (C[k]!==A[i] && k<C.length) k++;
       if (j!=N && k==C.length) C[C.length]=A[i];
     }

   return C;
}


Сообщение от harold
Разность двух массивов arr1 и arr2 - элементы массива arr1, которых нет в массиве arr2.
Аналогично пересечению, различие в коде только в одном символе

function Difference(A,B)
{
    var M=A.length, N=B.length, C=[];
 
    for (var i=0; i<M; i++)
     { var j=0, k=0;
       while (B[j]!==A[i] && j<N) j++;
       while (C[k]!==A[i] && k<C.length) k++;
       if (j==N && k==C.length) C[C.length]=A[i];
     }

   return C;
}

Последний раз редактировалось Demath, 19.12.2013 в 05:50.
Ответить с цитированием