34 lines
978 B
JavaScript
34 lines
978 B
JavaScript
|
'use strict';
|
||
|
|
||
|
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
||
|
|
||
|
module.exports = function take(length) {
|
||
|
var _this = this;
|
||
|
|
||
|
if (!Array.isArray(this.items) && _typeof(this.items) === 'object') {
|
||
|
var keys = Object.keys(this.items);
|
||
|
var slicedKeys = void 0;
|
||
|
|
||
|
if (length < 0) {
|
||
|
slicedKeys = keys.slice(length);
|
||
|
} else {
|
||
|
slicedKeys = keys.slice(0, length);
|
||
|
}
|
||
|
|
||
|
var collection = {};
|
||
|
|
||
|
keys.forEach(function (prop) {
|
||
|
if (slicedKeys.indexOf(prop) !== -1) {
|
||
|
collection[prop] = _this.items[prop];
|
||
|
}
|
||
|
});
|
||
|
|
||
|
return new this.constructor(collection);
|
||
|
}
|
||
|
|
||
|
if (length < 0) {
|
||
|
return new this.constructor(this.items.slice(length));
|
||
|
}
|
||
|
|
||
|
return new this.constructor(this.items.slice(0, length));
|
||
|
};
|