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.

33 lines
720 B

'use strict';
module.exports = function partition(fn) {
var _this = this;
var arrays = void 0;
if (Array.isArray(this.items)) {
arrays = [new this.constructor([]), new this.constructor([])];
this.items.forEach(function (item) {
if (fn(item) === true) {
arrays[0].push(item);
} else {
arrays[1].push(item);
}
});
} else {
arrays = [new this.constructor({}), new this.constructor({})];
Object.keys(this.items).forEach(function (prop) {
var value = _this.items[prop];
if (fn(value) === true) {
arrays[0].put(prop, value);
} else {
arrays[1].put(prop, value);
}
});
}
return new this.constructor(arrays);
};