sugar
Version:
A Javascript utility library for working with native objects.
28 lines (22 loc) • 642 B
JavaScript
;
var Sugar = require('sugar-core'),
coreUtilityAliases = require('../common/var/coreUtilityAliases');
var hasOwn = coreUtilityAliases.hasOwn,
forEachProperty = coreUtilityAliases.forEachProperty;
Sugar.Object.defineInstanceAndStatic({
'invert': function(obj, multi) {
var result = {};
multi = multi === true;
forEachProperty(obj, function(val, key) {
if (hasOwn(result, val) && multi) {
result[val].push(key);
} else if (multi) {
result[val] = [key];
} else {
result[val] = key;
}
});
return result;
}
});
module.exports = Sugar.Object.invert;