27

次のコードがあるとします。

const myVariable = { age: 7, name: "Hunter" };

変数の値だけでなく、変数の名前を知りたいのですが、それを文字列に入れるか、ログに記録するか、次のようにします。

const s = nameof(myVariable) + ': ' + JSON.stringify(myVariable);

そして、私が見たい結果は次のようなものです:

"myVariable: {"age":7,"name":"Hunter"}"

あなたの解決策を楽しみにしています。

4

1 に答える 1

29

これは、少し妥協した Q&A スタイルの私自身の回答です。トリックは、オブジェクト内の関数 nameof にパラメーターを渡すことnameof({myVariable})ですnameof(myVariable)

この規則に従うと、ソリューションは次のようになります。

var HD = HD || {};
HD.nameof = function (obj) {
  return Object.keys(obj)[0];
}

そして、これを使用して変数/オブジェクトの名前とオブジェクトのコンテンツ/変数の値を取得する方法は次のとおりです。

const s = HD.nameof({myVariable}) + ': ' + JSON.stringify(myVariable);   

したがって、s には、上記の質問で要求された結果が含まれます。

于 2016-05-05T17:56:30.380 に答える