difference.js 580 B

123456789101112131415161718192021
  1. var filter = require('../filter');
  2. var contains = require('./contains');
  3. /**
  4. * Flattens `array` a single level deep.
  5. *
  6. * @param {Array} arr The array to inspect.
  7. * @param {Array} values The values to exclude.
  8. * @return {Array} Returns the new array of filtered values.
  9. * @example
  10. * difference([2, 1], [2, 3]); // => [1]
  11. */
  12. var difference = function difference(arr) {
  13. var values = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
  14. return filter(arr, function (value) {
  15. return !contains(values, value);
  16. });
  17. };
  18. module.exports = difference;