| /*! |
| * arr-diff <https://github.com/jonschlinkert/arr-diff> |
| * |
| * Copyright (c) 2014 Jon Schlinkert, contributors. |
| * Licensed under the MIT License |
| */ |
| |
| 'use strict'; |
| |
| var flatten = require('arr-flatten'); |
| var slice = [].slice; |
| |
| /** |
| * Return the difference between the first array and |
| * additional arrays. |
| * |
| * ```js |
| * var diff = require('{%= name %}'); |
| * |
| * var a = ['a', 'b', 'c', 'd']; |
| * var b = ['b', 'c']; |
| * |
| * console.log(diff(a, b)) |
| * //=> ['a', 'd'] |
| * ``` |
| * |
| * @param {Array} `a` |
| * @param {Array} `b` |
| * @return {Array} |
| * @api public |
| */ |
| |
| function diff(arr, arrays) { |
| var argsLen = arguments.length; |
| var len = arr.length, i = -1; |
| var res = [], arrays; |
| |
| if (argsLen === 1) { |
| return arr; |
| } |
| |
| if (argsLen > 2) { |
| arrays = flatten(slice.call(arguments, 1)); |
| } |
| |
| while (++i < len) { |
| if (!~arrays.indexOf(arr[i])) { |
| res.push(arr[i]); |
| } |
| } |
| return res; |
| } |
| |
| /** |
| * Expose `diff` |
| */ |
| |
| module.exports = diff; |