2016-07-11 26 views
1

Ich werde versuchen zu erklären, was ich tun muss, warum es nicht so einfach zu erklären ist.Vergleichen Sie die Liste der doppelten E-Mails mit lodash Unterstrich

Ich habe 4 E-Mail-Listen und in ihnen gibt es doppelte Elemente unter ihnen, müssen diese E-Mails zu extrahieren, zum Beispiel:

list 1: 
email1, email2, email4, email5 

list 2: 
email2, email3, email5, email6 

list 3: 
email1, email2, email7, email8 

list 4: 
email2, email4, email6, email7 

Ich brauche dies: Ergebnis:

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

....

Ich versuche, dies mit Javascript zu tun, denn in der Tat sind diese E-Mails in einem Excel.

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

Antwort

1

Hier ist die Lösung, die ich nur Underscore.js mit nur habe geschrieben: 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>

Es war alles über Arrays zu sortieren. Wenn Sie Fragen haben, können Sie gerne in Kommentaren fragen.

+0

Vielen Dank! :) sehr gut –