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