Seek and Destroy help needed

So I’m confused as to why the for loop is not continuing through. It removes the first item from the newly created x array, but not the subsequent items. Is this just a syntax thing or what? My result is (1,3,1,3).

function destroyer(arr) {
  var x = Array.from(arguments);
  x.shift();
  
  var result = arr.filter(function(val){
    for (var i =0; i <=x.length; i++){
      return val !== x[(i)];
    }
  });
  
  // Remove all the values
return result;
}

destroyer([1, 2, 3, 1, 2, 3], 2, 3);

Your browser information:

Your Browser User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36.

Link to the challenge:
https://www.freecodecamp.org/challenges/seek-and-destroy

The return statement below only allows the for loop to iterate one time.

return val !== x[(i)];

Once the return statement is encountered, the for loop exits and the filter function moves to the next element in arr.

Good to know, I’ve only, as of yet, encountered filter prototypes with a return. Is there a better statement to use that would still allow the loop to continue?

Instead of a for loop, why not check if val is an element in x? You could use the indexOf or the includes function. Just make sure you are returning a Boolean expression when using the functions.