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];
namesTest = {
'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);
});
}