ui
This commit is contained in:
+34
@@ -0,0 +1,34 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function crossJoin() {
|
||||
function join(collection, constructor, args) {
|
||||
var current = args[0];
|
||||
|
||||
if (current instanceof constructor) {
|
||||
current = current.all();
|
||||
}
|
||||
|
||||
var rest = args.slice(1);
|
||||
var last = !rest.length;
|
||||
var result = [];
|
||||
|
||||
for (var i = 0; i < current.length; i += 1) {
|
||||
var collectionCopy = collection.slice();
|
||||
collectionCopy.push(current[i]);
|
||||
|
||||
if (last) {
|
||||
result.push(collectionCopy);
|
||||
} else {
|
||||
result = result.concat(join(collectionCopy, constructor, rest));
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
for (var _len = arguments.length, values = Array(_len), _key = 0; _key < _len; _key++) {
|
||||
values[_key] = arguments[_key];
|
||||
}
|
||||
|
||||
return new this.constructor(join([], this.constructor, [].concat([this.items], values)));
|
||||
};
|
||||
Reference in New Issue
Block a user