если массив уже отсортирован, то можно проще сделать так:
var a = [ 1, 1, 2, 2, 2, 3, 3, 4, 4, 4, 5 ],
b = [],
last,
length = a.length;
for( var i = 0; i < length; i++ ) {
if ( a[ i ] !== last ) {
b[ b.length ] = last = a[ i ];
}
}
alert( b );
Но это прокатит если массив уже отсортирован, а точнее если парные значения находятся рядом друг с другом.