hangul-util
Version:
Korean Hangul Utils
84 lines (83 loc) • 2.71 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.chunkAtEnd = chunkAtEnd;
exports.getNestedProperty = getNestedProperty;
exports.isNumber = isNumber;
exports.makePercentByObject = makePercentByObject;
exports.reverseByArray = reverseByArray;
exports.reverseByObject = reverseByObject;
exports.splitByKey = splitByKey;
exports.zeroPad = zeroPad;
function isNumber(input) {
return typeof input === "number" && !isNaN(input);
}
function splitByKey() {
var _key$match;
var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
return (_key$match = key.match(/[ㄱ-힣a-zA-Z0-9]+/g)) !== null && _key$match !== void 0 ? _key$match : [];
}
function getNestedProperty() {
var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
var object = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _key = typeof key === "string" ? splitByKey(key) : key;
if (!_key.length) return undefined;
return _key === null || _key === void 0 ? void 0 : _key.reduce(function (acc, v) {
return acc === null || acc === void 0 ? void 0 : acc[v];
}, object);
}
function zeroPad() {
var string = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var pow = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
var pad = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "0";
var result = String(string);
var padString = String(pad);
for (var i = pow - result.length; i > 0; i--) {
result = padString + result;
}
return result;
}
function chunkAtEnd() {
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
var n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
var result = [];
var start = value.length;
while ((start -= n) > 0) {
result.push(value.substring(start, start + n));
}
if (start > -n) {
result.push(value.substring(0, start + n));
}
return result;
}
function makePercentByObject(object) {
var result = {};
var sum = 0;
for (var key in object) {
sum += object[key];
}
for (var _key2 in object) {
if (isNumber(object[_key2])) {
result[_key2] = Number((object[_key2] / sum * 100).toFixed(2));
}
}
return result;
}
function reverseByObject(object) {
var result = {};
for (var key in object) {
result[object[key]] = key;
}
return result;
}
function reverseByArray(array) {
var result = [];
for (var index = 0; index < array.length; index++) {
if (Array.isArray(array[index])) {
array[index] = reverseByArray(array[index]);
}
result.unshift(array[index]);
}
return result;
}