| /*! |
| * arr-diff <https://github.com/jonschlinkert/arr-diff> |
| * |
| * Copyright (c) 2014-2017, Jon Schlinkert. |
| * Released under the MIT License. |
| */ |
| |
| 'use strict'; |
| |
| module.exports = function diff(arr/*, arrays*/) { |
| var len = arguments.length; |
| var idx = 0; |
| while (++idx < len) { |
| arr = diffArray(arr, arguments[idx]); |
| } |
| return arr; |
| }; |
| |
| function diffArray(one, two) { |
| if (!Array.isArray(two)) { |
| return one.slice(); |
| } |
| |
| var tlen = two.length |
| var olen = one.length; |
| var idx = -1; |
| var arr = []; |
| |
| while (++idx < olen) { |
| var ele = one[idx]; |
| |
| var hasEle = false; |
| for (var i = 0; i < tlen; i++) { |
| var val = two[i]; |
| |
| if (ele === val) { |
| hasEle = true; |
| break; |
| } |
| } |
| |
| if (hasEle === false) { |
| arr.push(ele); |
| } |
| } |
| return arr; |
| } |