2016-07-11 3 views
1

내가해야 할 일을 설명하려고합니다. 왜 그렇게 설명하기가 쉽지 않은지 설명하려고합니다.lodash 밑줄을 사용하여 중복 이메일 목록을 비교하십시오.

나는 4 개 이메일 목록을 가지고 있고, 그들에 그 (것)들의 사이에서 중복 항목은 예를 들어, 이러한 이메일을 추출 할 필요가있다 :

list 1: 
email1, email2, email4, email5 

list 2: 
email2, email3, email5, email6 

list 3: 
email1, email2, email7, email8 

list 4: 
email2, email4, email6, email7 

내가이 필요합니다 결과 :

email1 (list1, list3) 
email2 (list1, list2, list3, list4) 
email3 (list2) 

....

사실,이 이메일은 Excel에 있기 때문에 자바 스크립트로 이것을하려고합니다.

012 3,516,

JSbin : 여기 http://jsbin.com/zerexuviya/edit?html,js,console,output

답변

1

는 Underscore.js를 사용하여 그냥 쓴 한 솔루션입니다 : https://jsfiddle.net/alienpavlov/b0zaz5Lw/

var all = { 
 
    "list1": [ 
 
     "email1", 
 
     "email2", 
 
     "email3", 
 
     "email4", 
 
     "email5", 
 
     "email6" 
 
    ], 
 
    "list2": [ 
 
     "email2", 
 
     "email3", 
 
     "email6", 
 
     "email7" 
 
    ], 
 
    "list3": [ 
 
     "email1", 
 
     "email3", 
 
     "email4", 
 
     "email5", 
 
     "email6" 
 
    ], 
 
    "list4": [ 
 
     "email1", 
 
     "email3", 
 
     "email5", 
 
     "email6" 
 
    ] 
 
}; 
 

 
var listOfAllEmails = _.union.apply(undefined, _.values(all)); 
 
_.each(listOfAllEmails, function(email, i) { 
 
    var result = []; 
 
    _.each(all, function(list, j) { 
 
     if (_.indexOf(list, email) > -1) { 
 
      result.push(j); 
 
     } 
 
    }); 
 
    if (result.length > 1) { 
 
     //console.log(email, "=>", result); 
 
     var div = document.getElementById("result") 
 
     div.innerHTML = div.innerHTML + email + " (" + result + ")<br>"; 
 
    } 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> 
 
<div id="result"></div>

그것은 배열을 정렬에 대한 모든했다. 질문이 있으시면 언제든지 의견을 물어보십시오.

+0

감사합니다. :) 아주 좋아. –