1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /*!
- * 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;
|