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) 

を....

私はJavaScriptでこれをしようとしています。実際、これらのメールは優れているからです。

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

ありがとうございました! :) とても良い –

関連する問題