Dies ist meine zweite Antwort, aber ich glaube, die schnellste? Ich würde mich freuen, wenn jemand das für mich überprüft und in den Kommentaren antwortet.
Bei meinem ersten Versuch erreichte ich etwa 99k ops/sec und bei diesem Versuch sind es 390k ops/sec gegenüber dem anderen führenden jsperf-Test von 140k (für mich).
http://jsperf.com/merge-two-arrays-keeping-only-unique-values/26
Ich habe dieses Mal versucht, die Interaktion mit dem Array so weit wie möglich zu minimieren, und es sah so aus, als hätte ich etwas Leistung gewonnen.
function findMerge(a1, a2) {
var len1 = a1.length;
for (var x = 0; x < a2.length; x++) {
var found = false;
for (var y = 0; y < len1; y++) {
if (a2[x] === a1[y]) {
found = true;
break;
}
}
if(!found){
a1.push(a2.splice(x--, 1)[0]);
}
}
return a1;
}
Edit: Ich habe einige Änderungen an meiner Funktion vorgenommen, und die Leistung ist drastisch im Vergleich zu anderen auf der jsperf-Website.