| 
 Пересечение и разность двух массивов Всем привет, помогите сделать скрипты для нахождения пересечения и разности двух массивов на JavaScript. Пересечение двух массивов arr1 и arr2 - элементы, которые присутствуют в обоих массивах. Разность двух массивов arr1 и arr2 - элементы массива arr1, которых нет в массиве arr2. В результирующих массивах не должно быть одинаковых элементов, даже если во входных массивах есть одинаковые элементы. Застрял на этом пункте задания :( | 
| 
 harold, ваши попытки плиз?! | 
| 
 Могу подсказать есть уже темка на форуме этом думаю поможет Вам http://javascript.ru/forum/misc/2473...massiva-2.html | 
| 
 Цитата: 
 
function Intersec(arr1,arr2){
 var idx = 0, arr3 = [];
 for (var i = 0; i < arr2.length; i++)
     {
       idx = arr1.indexOf(arr2[i]);
       if (idx >= 0) arr3.push(arr1[i]);
     }
 return arr3;
}
но некорректно ( | 
| 
 harold, почти у вас всё верно кроме 7 строки 
function Intersec(arr1,arr2){
 var idx = 0, arr3 = [];
 for (var i = 0; i < arr2.length; i++)
     {
       idx = arr1.indexOf(arr2[i]);
       if (idx >= 0) arr3.push(arr2[i]);
     }
 return arr3;
}
alert(Intersec([1,7,2,8,5,12,45,67],[3,4,5,1,2]))
 | 
| 
 harold, 7 строка подумать и будет функция разности | 
| 
 Цитата: 
 
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;
}
Цитата: 
 
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, Дзен-трансгуманист, благодарю, разобрался что исправить. | 
| 
 
function someFnName(arr1,arr2){
     /*
      * resultArr1 - общие элементы
      * resultArr2 - элементы отсутствующие в втором массиве
    */
     var resultArr1 = [],
         resultArr2 = [];
         arr1.map(function(elem){
               if( arr2.indexOf( elem ) >= 0 ){
                   resultArr1.push( elem );
               } else
                   resultArr2.push(elem);
          });
    return {
          res1 : resultArr1,
          res2 : resultArr2
    }
};
 | 
| 
 | 
| Часовой пояс GMT +3, время: 12:37. |