第1引数「Object」の各値に第2引数で指定した関数を適用した第1引数を返す。
■使用例
var obj = {
start : 5,
end : 12
};
var func = function( val, key ){
return val + 5;
}
// re = { start: 10, end: 17 };
var re = _.mapObject( obj, func );
■内部構造
_.mapObject = function(obj, iteratee, context) {
// 第3引数が入力されていない、第2引数が関数ならそのまま。
iteratee = cb(iteratee, context);
// 第1引数のkey値を抽出した配列を作る。
var keys = _.keys(obj),
// 配列の長さを抽出。
length = keys.length,
results = {},
currentKey;
// 第1引数のObjectの各値に第2引数の関数を適用するforループ。
for (var index = 0; index < length; index++) {
currentKey = keys[index];
// 第2引数の関数に第1引数の各値とそのkey値と第1引数自身を渡す。
results[currentKey] = iteratee(obj[currentKey], currentKey, obj);
}
// 関数を適用した第1引数を返す。
return results;
};