2016-07-03 7 views
-8

Я пытаюсь выполнить задание freecodecamp. Есть задача: Сравните два массива и верните новый массив с любыми элементами, найденными только в одном из двух заданных массивов, но не обоих. Другими словами, верните симметричную разность двух массивов.Как сравнить два разных массива без методов?

Я знаю, как это исправить с Array.prototype.slice(), Array.prototype.filter(), Array.prototype.indexOf(), Array.prototype.concat() и другими методами. Но я хочу сделать это без методов.

+1

Добро пожаловать в переполнение стека! Пожалуйста, примите [тур], осмотритесь и прочитайте [помощь], в частности [* Как задать хороший вопрос?] (/ Help/how-to-ask) –

+1

@horizontt: показать нам некоторые усилия, разместите свой пример кода. –

ответ

-2

вот как я бы реализовать:

window.onload=function(){ 
 
var array1 = [1, 2, 3, 4, 5, 6] 
 
var array2 = [3, 4, 5, 6, 7, 8] 
 
var result = [] 
 
var resultCount=0; 
 
for (var i1 = 0; i1 < array1.length; i1++) { 
 
    var comparedElement = array1[i1]; 
 
    var isUnique = true; 
 
    for (var i2 = 0; i2 < array2.length; i2++) { 
 
     if (comparedElement == array2[i2]) { 
 
      isUnique = false; 
 
      break; 
 
     } 
 
    } 
 
    if (isUnique) { 
 
     result[resultCount]=comparedElement;resultCount++; 
 
    } 
 
} 
 

 

 
for (var i2 = 0; i2 < array2.length; i2++) { 
 
    var comparedElement = array2[i2]; 
 
    var isUnique = true; 
 
    for (var i1 = 0; i1 < array1.length; i1++) { 
 
     if (comparedElement == array1[i1]) { 
 
      isUnique = false; 
 
      break; 
 
     } 
 
    } 
 
    if (isUnique) { 
 
     result[resultCount]=comparedElement;resultCount++; 
 
    } 
 
} 
 
    
 
console.log(result) 
 
}

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

+0

Я не думаю, что он об этом заботился, только методы сравнения. Я удалил его, хотя. –

+0

Спасибо. Оно работает. Попытка сделать его короче и более оптимальным. – Horizontt

+0

Рад, что я мог помочь. Не могли бы вы отметить это как ответ, если он сработает для вас? Это тоже помогло бы мне. –

Смежные вопросы