mirror-key-value
Version:
Mirroring to keys and values from array of strings
40 lines (35 loc) • 791 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = mirrorKeyValue;
/*!
* @license mirror-key-value
* (c) sugarshin
* License: MIT
*/
/**
* mirrorKeyValue
*
* @param {String[]} array
* @param {Object} [base = {}]
* @returns {Object}
*/
function mirrorKeyValue(array) {
var base = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
if (!Array.isArray(array) || !isStrings(array)) {
throw new TypeError('should be an array of string.');
}
return array.reduce(function (result, str) {
if (result[str]) {
return result;
}
result[str] = str;
return result;
}, base);
}
function isStrings(array) {
return array.every(function (val) {
return typeof val === 'string';
});
}