JSFiddle - React, Tailwind, and code Playground
JavaScript
function diffArray(arr1, arr2) {
var newArr = [];
for (i = 0; i < arr1.length; i++) {
for (j = 0; j < arr2.length; j++)
while (arr1[i] === arr2[j])
arr2.splice(j, 1);
newArr = arr2;
}
return newArr;
}
function diffArray2(arr1, arr2) {
let obj1 = {}, obj2 = {};
for (let l = arr1.length, i = 0; i < l; i++)
obj1[arr1[i]] = undefined;
for (let l = arr2.length, i = 0; i < l; i++)
obj2[arr2[i]] = undefined;
let a = [];
for (let arr = arr1.concat(arr2), l = arr.length, i = 0, item = arr[0]; i < l; i++, item = arr[i])
if (item in obj1 !== item in obj2)
a.push(item);
return a;
}
let arr1 = [], arr2 = [];
for (let i = 0; i < 9999; i++)
arr1[i] = i;
for (let i = 0; i < 999; i++)
arr2[i] = i;
let mStart = window.performance.now();
let result1 = diffArray(arr1, arr2);
let m1 = window.performance.now();
let result2 = diffArray2(arr1, arr2);
let now = window.performance.now();
alert((m1 - mStart) + " " + (now - m1));