2016-11-02 3 views
0

js에 익숙하지 않아 js에서 많은 코드와 조건을 이해할 수 없습니다. 내 질문은 간단하지만 가능한 한 좋은 예를 들어 줄 사람이 필요하지만 코드에서 구현하기가 어려워지고 있습니다.for 루프에서 중복 값을 병합하는 방법 javascript

이것은 데이터가 들어오는 2 개의 어레이가있는 코드입니다.

blind_tmp = ''; 
for (i=0; i<@All of Blind Relationship Link.length; i++){  
    blind_tmp = blind_tmp + '<p>[**' + @All of Element Title[i] + '**](' + @All of Blind Relationship Link[i] + ')'  
}; 

무엇이 필요한가? 중복 된 인쇄 된 병합 레코드가 필요합니다.

예를 들어 : 블라인드 관계 링크 인 경우 AF44 6 개 요소 후이 AF44 내가 모두 1.AF44,2.AF44 처럼 기록 할 그래서 다시 오실 지금은

예를 따라 올 방법 요소 쓰는 동안 :

AF11,AF22,AF33,AF44,AF55,AF66,AF77,AF44 

그래서 당신은 두 AF44 볼이 예에서 나는 그들이이

AF11,AF22,AF33,AF44AF44,AF55,AF66,AF77 
처럼 기록 할

코드 예제에 대한 도움을 주시면 감사하겠습니다.

+1

물어보기 전에 검색해야합니다. 당신이 자바 스크립트 검색 배열에서 중복을 제거하는 경우 귀하의 답변을 –

+0

어떻게 배열 정렬, 그럼 인쇄합니까? 인쇄 중에 현재 항목이 이전 항목과 동일하면 쉼표를 인쇄하지 마십시오. – vothaison

+0

개체 키는 항상 고유하므로 새 개체를 만들고 키로 사용되는 두 배열의 값으로 채 웁니다. 결과 개체 키를 가져 오면 병합됩니다. – setec

답변

1

아이디어는 blindRelationshipLink의 각 요소를 반복하고 배열 요소의 발생 횟수를 확인하는 데 사용되는 임시 배열에 이러한 요소를 저장하는 것입니다. 코드 조각을 실행하여

var blindRelationshipLink = ['AF11','AF22','AF33','AF11','AF44','AF44','AF55','AF66','AF77','AF11','AF22','AF11']; 
 
var arrTemp = []; 
 
var p = ''; 
 
blindRelationshipLink.forEach(function(arr){ 
 
var count = 0;  
 
arrTemp.forEach(function(a){ 
 
if(arr === a) 
 
    count++; 
 
    
 
}); 
 
arrTemp.push(arr); 
 
if(count){ 
 
    count++; 
 
    arr= arr + '.' + count; 
 
} 
 
p = p + arr + ','; 
 
}); 
 
alert(p);
당신 테스트.

0

이 방법은 최선은 아니지만 목적에 부합 할 수 있습니다. 여기

메인 배열의 여러 반복되는 항목이있는 경우이 코드

var elemArray = ['AF11', 'AF22', 'AF33', 'AF44', 'AF55', 'AF66', 'AF77', 'AF44']; // Array of elements 


//A new array which which will contain elements which pass our case  
    var finalArray = []; 
    elemArray.forEach(function(item) { // loop through main array 
     // Check if element is present or else push the element 
     if (finalArray.indexOf(item) == -1) { 
     finalArray.push(item); 
     } else { 
     // if element is there find the index 
     var getIndex = finalArray.indexOf(item); 
     // remove the element, else there will be duplicate 
     finalArray.splice(getIndex, 1); 
     //concate the matched element 
     var newElem = item + item; 
     // push the element in specfic index 
     finalArray[getIndex] = newElem; 
     } 
    }) 
    console.log(finalArray) 

현재 단점은 어떻게됩니까하는 조각이다. 예를 들어, AF33이 두 번 이상 존재합니다.

DEMO

관련 문제