initial commit
This commit is contained in:
31
node_modules/es5-ext/array/#/exclusion.js
generated
vendored
Normal file
31
node_modules/es5-ext/array/#/exclusion.js
generated
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
"use strict";
|
||||
|
||||
var value = require("../../object/valid-value")
|
||||
, aFrom = require("../from")
|
||||
, toArray = require("../to-array")
|
||||
, contains = require("./contains")
|
||||
, byLength = require("./_compare-by-length")
|
||||
, filter = Array.prototype.filter
|
||||
, push = Array.prototype.push;
|
||||
|
||||
module.exports = function (/* …lists*/) {
|
||||
var lists, seen, result;
|
||||
if (!arguments.length) return aFrom(this);
|
||||
push.apply(lists = [this], arguments);
|
||||
lists.forEach(value);
|
||||
seen = [];
|
||||
result = [];
|
||||
lists.sort(byLength).forEach(function (list) {
|
||||
result = result
|
||||
.filter(function (item) {
|
||||
return !contains.call(list, item);
|
||||
})
|
||||
.concat(
|
||||
filter.call(list, function (item) {
|
||||
return !contains.call(seen, item);
|
||||
})
|
||||
);
|
||||
push.apply(seen, toArray(list));
|
||||
});
|
||||
return result;
|
||||
};
|
||||
Reference in New Issue
Block a user