unique test

Benchmark created by unique test on


Setup

var arr = [];
  for( var i = 0; i < 100000; i++ ){
  arr.push(Math.floor((Math.random()*10)+1));
  }

Test runner

Ready to run.

Testing in
TestOps/sec
jquery
function unique ( results ) {
    var elem, duplicates = [], i = 1, j = 0;
    results.sort();

    for ( ; (elem = results[i]); i++ ) {
        if ( elem === results[ i - 1 ] ) {
            j = duplicates.push( i );
        }
    }
    while ( j-- ) {
        results.splice( duplicates[ j ], 1 );
    }

    return results;
}

unique(arr);
ready
me
function unique1 ( results ) {
    var elem, duplicates = [], i = 1, j = 0;
    results.sort();

    for ( ; (elem = results[i]); i++ ) {
        if ( elem === results[ i - 1 ] ) {
            results.splice( i, 1 );
            i -= 1;
        }
    }

    return results;
}

unique1(arr);
ready
me without sort
function unique ( arr ) {
	var newArr = [];

	while ( arr.length ){
		var item = arr[arr.length-1];
		arr.pop();

		if ( !(~arr.indexOf(item)) ) {
			newArr.unshift(item);
		}
	}

	return newArr;
}

unique(arr)
ready
jquery2
function unique ( results ) {
    var elem, duplicates = [], i = 1, j = 0;
    results.sort();

    for ( ; (elem = results[i]); i++ ) {
        if ( elem === results[ i - 1 ] ) {
            j = duplicates.push( i );
        }
    }
    while ( j-- ) {
        results.splice( duplicates[ j ], 1 );
    }

    return results;
}

unique(arr);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.