コード
getVariableName.js/**
* オブジェクト内要素の変数名を取得
* 関数等の変数名を取得を想定している。
* 数値など同一の値が複数オブジェクト内ある場合、意図した動作とならない。
* @param {Object} obj - オブジェクト
* @param {*} val - 要素
* @return {(string|null)} 変数名
*/
function getVariableName(obj, val) {
var ret = null;
for (var key in obj) {
if (obj[key] === val) {
ret = key;
break;
}
}
return ret;
}
使用例
var func = function f1() {};
var obj = {f0: func, abc: 'ABC', f: true, t: true};
console.log(getVariableName(obj, func)); // f0
console.log(getVariableName(obj, 'ABC')); // abc
console.log(getVariableName(obj, true)); // f ← 意図した動作とならないパターン