javascriptarrayscompare

Find missing element by comparing 2 arrays in Javascript


For some reason I'm having some serious difficulty wrapping my mind around this problem. I need this JS function that accepts 2 arrays, compares the 2, and then returns a string of the missing element. E.g. Find the element that is missing in the currentArray that was there in the previous array.

function findDeselectedItem(CurrentArray, PreviousArray){

var CurrentArrSize = CurrentArray.length;
var PrevousArrSize = PreviousArray.length;

// Then my brain gives up on me...
// I assume you have to use for-loops, but how do you compare them??

return missingElement;

}

Thank in advance! I'm not asking for code, but even just a push in the right direction or a hint might help...


Solution

  • This should work. You should also consider the case where the elements of the arrays are actually arrays too. The indexOf might not work as expected then.

    function findDeselectedItem(CurrentArray, PreviousArray) {
    
       var CurrentArrSize = CurrentArray.length;
       var PreviousArrSize = PreviousArray.length;
    
       // loop through previous array
       for(var j = 0; j < PreviousArrSize; j++) {
    
          // look for same thing in new array
          if (CurrentArray.indexOf(PreviousArray[j]) == -1)
             return PreviousArray[j];
    
       }
    
       return null;
    
    }