map-keys.js 408 Bytes
Newer Older
YazhouChen's avatar
YazhouChen committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
"use strict";

var callable = require("./valid-callable")
  , forEach  = require("./for-each")
  , call     = Function.prototype.call;

module.exports = function (obj, cb /*, thisArg*/) {
	var result = {}, thisArg = arguments[2];
	callable(cb);
	forEach(
		obj,
		function (value, key, targetObj, index) {
			result[call.call(cb, thisArg, key, value, this, index)] = value;
		},
		obj
	);
	return result;
};