JS Dedupe Tests

HTML

<div id=status></div>

JavaScript

$('#status').text('running...');

setTimeout(function() {
var longArrayManyDupes = [];
for(var i = 0; i < 1000; i++) {
  longArrayManyDupes.push(Math.floor(Math.random() * 10));
}
    
function dedupeSmall(array) {
	var a = [];
	$.each(array, function(i, o) {
		if (a.indexOf(o) < 0)
			a.push(o);
	});

	return a;
}
    
function dedupeLarge(array) {
	array.sort();
	for(var i = 1; i < array.length; i++) {
		if (array[i-1] == array[i])
			array.splice(i--, 1);
	}
	return array;
}

    function dedupeManyDupes(array) {
        array.sort();
      var l = array.length;
        for(var i = 1; i < l; i++) {
            if (array[i-1] == array[i]) {
                var dupe = array[i];
                var mark = i;
                for(i++; i < l && array[i] == dupe; i++)
                {}
                var snip = i - mark;
                array.splice(mark, snip);
                i -= snip;
                l -= snip;
            }
        }
        return array;
    }
    
longArrayManyDupes = dedupeManyDupes(longArrayManyDupes);
$('#status').text(longArrayManyDupes.join(','));  
}, 50);