いくつかのオブジェクトを反復する関数があり、反復されるオブジェクトの変数名を使用したいと考えています。現在、名前の重複リストを維持しており、配列インデックスでそれらを参照しています。これは不必要に思えます。全体がエンクロージャーに入っています。
原則として、それを行うには2つの方法があります。
1 つは名前のリストを使用して、そのような名前の変数を何らかの方法で参照することです。もう 1 つは、変数自体 (配列に保持されている) から変数名を何らかの方法で決定することです。
これは可能ですか、それともまったく別のアプローチを検討する必要がありますか?
(function(){
var a = {p:true,b:true};
var b = {em:true,i:true};
var c = {h1:true,strong:true};
var x = function(tagName){
var typedefnames = ["a","b","c"]
var typedefs = [a,b,c];
var types = {}
var i;
for( i=0; i<typedefs.length; i++ )
if( typedefs[i][ tagName ] )
types[ typedefnames[i] ] = true
else
types[ typedefnames[i] ] = false
return types;
}
console.log(x("p"))
// { a:true, b:false, c:false }
}())