function getRandomInt(max) {
return Math.floor(Math.random() * max);
}
var itemsA = [];
var itemsB = [];
for (let i = 0; i < 1000; i++) {
itemsA.push(getRandomInt(500));
itemsB.push(getRandomInt(500));
}
itemsA.sort(function(a,b){ return a-b; });
itemsB.sort(function(a,b){ return a-b; });
function* sortedDifference(sortedIterableA, sortedIterableB) {
let iteratorA = sortedIterableA[Symbol.iterator]();
let iteratorB = sortedIterableB[Symbol.iterator]();
let itemA = iteratorA.next();
let itemB = iteratorB.next();
while (!itemA.done) {
if (itemB.done) {
yield itemA.value;
yield* iteratorA;
return;
}
if (itemA.value < itemB.value) {
yield itemA.value;
itemA = iteratorA.next();
} else {
if (! (itemB.value < itemA.value)) {
itemA = iteratorA.next();
}
itemB = iteratorB.next();
}
}
}
function difference(setA, setB) {
let _difference = new Set(setA)
for (let elem of setB) {
_difference.delete(elem)
}
return Array.from(_difference).sort();
}