Remove duplicates from list

by Brett

HTML

<script src="http://github.com/kerberoS/jQuery-Tweets/raw/master/js/jquery.tweets.0.1.js"></script>
<div class="attendees-shortcode">
    <div class="attendees">
        <h2>Attending This Event</h2>
        <hr>
        <div class="eb-attendees-list" data-event-id="18043573815">
            <ul>
                <li class="eb-attendee-list-item eb-display_name">Kim Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Kim Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Kim Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Kim Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Kim Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Kim Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Kim Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Kim Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Kim Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Kim Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Kim Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Michael Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Michael Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Michael Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Michael Abel</li>
                <li class="eb-attendee-list-item eb-display_name">Nick Bint</li>
                <li class="eb-attendee-list-item eb-display_name">Nick Bint</li>
                <li class="eb-attendee-list-item eb-display_name">Nick Bint</li>
                <li class="eb-attendee-list-item eb-display_name">Zachery Cove</li>
                <li class="eb-attendee-list-item eb-display_name">Chris Cove ’17</li>
                <li class="eb-attendee-list-item...

CSS

h2 { 
    font-size: 2em; 
    font-weight: bold; 
}
ul li { 
    list-style-type: square; 
    text-transform: capitalize;
}

JavaScript

//http://stackoverflow.com/questions/9229645/remove-duplicates-from-javascript-array

/*names = {};
Object {}
names
Object {}
key = 'kim abel';
"kim abel"
name = 'Kim Abel';
"Kim Abel"
year = '';
""
names[key] = {name: name, year: year}
Object {name: "Kim Abel", year: ""}
names
Object {kim abel: Object}
names[key] = {name: name, year: '17'}
Object {name: "Kim Abel", year: "17"}
names[key] = {name: name, year: '18'}
Object {name: "Kim Abel", year: "18"}
names
Object {kim abel: Object}*/

// Get the list of all names and drop them in an array
var names = [];
$('.eb-attendees-list ul li').each( function() {
    
    justName = el.split(/’(.+)?/)[0];
    classYear = el.split(/’(.+)?/)[1];
    
    names[key] = {
        'name': justName,
        'year': classYear
    };
    
    //names.push($(this).text().toLowerCase());
});

// Destroy the original list since we don't want it with duplicates
$('.eb-attendees-list ul').remove();

// Now let's remove the duplicates...
var uniqueNames = [];
$.each( names, function(i, el) {
    if($.inArray(el, uniqueNames) === -1) {
        uniqueNames.push(el);
    }   
});

var newList = $('<ul />'); // New UL
outputList(uniqueNames); // Run function and fill the UL with unique names
newList.appendTo($('.eb-attendees-list')); // Append the completed UL to original DIV

// Create a list item for each item and append to new UL
function outputList(result) {
    $.each( result, function(index, value) {
        $('<li />').text(value).addClass('eb-attendee-list-item eb-display_name').appendTo(newList);
    });
}