@walletpack/core
Version:
> TODO: description
98 lines (84 loc) • 2.46 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
/***
* A set of helpers for Objects/Arrays
*/
var ObjectHelpers =
/*#__PURE__*/
function () {
function ObjectHelpers() {
(0, _classCallCheck2["default"])(this, ObjectHelpers);
}
(0, _createClass2["default"])(ObjectHelpers, null, [{
key: "distinct",
/***
* Makes a single level array distinct
* @param array
* @returns {*}
*/
value: function distinct(array) {
return array.reduce(function (a, b) {
return a.includes(b) ? a : a.concat(b);
}, []);
}
/***
* Flattens an array into a single dimension
* @param array
* @returns {*}
*/
}, {
key: "flatten",
value: function flatten(array) {
var _this = this;
if (!Array.isArray(array)) return array;
return array.reduce(function (a, b) {
return a.concat(Array.isArray(b) ? _this.flatten(b) : b);
}, []);
}
/***
* Flattens an array into a single dimension
* @param val
* @returns {*}
*/
}, {
key: "flattenObject",
value: function flattenObject(val) {
var _this2 = this;
if ((0, _typeof2["default"])(val) !== 'object') return this.flatten(val);
return this.flatten(Object.keys(val).map(function (key) {
return _this2.flattenObject(val[key]);
}));
}
}, {
key: "shuffle",
value: function shuffle(a) {
for (var i = a.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var _ref = [a[j], a[i]];
a[i] = _ref[0];
a[j] = _ref[1];
}
return a;
}
}, {
key: "objectTake",
value: function objectTake(obj, limit) {
var limited = {};
if (Object.keys(obj).length < limit) return obj;
Object.keys(obj).map(function (key) {
if (Object.keys(limited).length >= limit) return;
limited[key] = obj[key];
});
return limited;
}
}]);
return ObjectHelpers;
}();
exports["default"] = ObjectHelpers;