mapObject() | Underscore JS 日本語リファレンス

第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;
  };

このページのトップへ戻る