I've found a lot of posts that solve this problem:
Assuming we have:
array1 = ['A', 'B', 'C', 'D', 'E']; array2 = ['C', 'E'];
Is there a proven and fast solution to compare two arrays against each other, returning one array without the values appearing in both arrays (C and E here). Desired solution:
array3 = ['A', 'B', 'D']
But what if you have:
array1 = ['A', 'B', 'C', 'D', 'D', 'E']; array2 = ['D', 'E'];
and you're looking for the solution to be:
array3 = ['A', 'B', 'C', 'D'] // don't wipe out both D's
Here is some context:
You are trying to teach students about how sentences work. You give them a scrambled sentence:
ate -- cat -- mouse -- the -- the
They start typing an answer: The cat
You would like the prompt to now read:
ate -- mouse - the
At present, my code takes out both the's.
Here is what I've tried:
(zsentence is a copy of xsentence that will get manipulated by the code below, join()ed and put to screen)
for (i=0; i < answer_split.length; i++) {
for (j=0; j < xsentence.length; j++) {
(function(){
if (answer_split[i] == xsentence[j]) { zsentence.splice(j,1); return; }
})();
}
}