第1引数「Object」の値の中で第2引数の関数の条件を満たしている最初のkey値が返される。
■使用例
var obj = { js01: "Underscore JS", js02 : "jQuery" };
var func = function( val, key, obj ){
if( key == "js01" ) return val;
}
// re = js01
var re = _.findKey( obj, func );
■内部構造
_.findKey = function(obj, predicate, context) {
// 第3引数が入力されていない、第2引数が関数ならそのまま。
predicate = cb(predicate, context);
// Objectのkey値のみの配列を作成。ローカル変数keyの宣言。
var keys = _.keys(obj), key;
// Objectの各値が第2引数の関数に適用されるforループ。
for (var i = 0, length = keys.length; i < length; i++) {
key = keys[i];
// 第2引数の関数の条件を満たしていたObjectの最初のkey値が返される。
if (predicate(obj[key], key, obj)) return key;
}
};