define(['./_flatten', './restArguments', './filter', './contains'], function (_flatten, restArguments, filter, contains) { // Take the difference between one array and a number of other arrays. // Only the elements present in just the first array will remain. var difference = restArguments(function(array, rest) { rest = _flatten(rest, true, true); return filter(array, function(value){ return !contains(rest, value); }); }); return difference; });