Merge & duplicate Arrays

Benchmark created on


Setup

var array1 = [{
      artist: 1,
      title: 2
    }, {
      artist: 3,
      title: 2
    }, {
      artist: 4,
      title: 4
    }, {
      artist: 1,
      title: 2
    }, {
      artist: 1,
      title: 2
    }, {
      artist: 1,
      title: 2
    }, ];
    
    var array2 = [{
      artist: 6,
      title: 2
    }, {
      artist: 3,
      title: 2
    }, {
      artist: 3,
      title: 4
    }, {
      artist: 1,
      title: 2
    }, {
      artist: 3,
      title: 2
    }, {
      artist: 3,
      title: 2
    }, {
      artist: 8,
      title: 9
    }, {
      artist: 11,
      title: 12
    }, ];

Test runner

Ready to run.

Testing in
TestOps/sec
Array 1
function arrayUnique(array) {
  var a = array.concat();
  for (var i = 0; i < a.length; ++i) {
    for (var j = i + 1; j < a.length; ++j) {
      if (a[i].artist == a[j].artist && a[i].title == a[j].title)
        a.splice(j--, 1);
    }
  }

  return a;
}
var array3 = arrayUnique(array1.concat(array2));
ready
Array 2
function arrayUnique(arr) {
  var n, y, x, i, r;
  r = new Array();
  o: for (i = 0, n = arr.length; i < n; i++) {
    for (x = 0, y = r.length; x < y; x++)
      if (r[x].artist == arr[i].artist && r[x].title == arr[i].title) {
        continue o;
      };
    r.push(arr[i]);
  }
  return r;
}
var array3 = arrayUnique(array1.concat(array2));
ready

Revisions

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