You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
805 B
47 lines
805 B
/*! |
|
* 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; |
|
}
|
|
|