2016-07-03 4 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

기꺼이 도와 드리겠습니다. 그것이 당신을 위해 효과가 있다면 당신은 아마도 이것을 답으로 표시 할 수 있을까요? 그건 나 좀 도와 줄래. –

관련 문제