javascript - 由另一个变量引用变量名,或从变量中确定变量名

标签 javascript

我有一个函数,它迭代一些对象,然后我想使用被迭代对象的变量名。目前我维护一个重复的名称列表,并通过数组索引引用它们。这似乎是不必要的。整个东西都在一个外壳中。

原则上,我可以看到两种方法。

一种是使用名称列表,并以某种方式引用这样命名的变量,另一种是通过变量本身(保存在数组中)以某种方式确定变量名称。

这可能吗,还是我应该考虑一种完全不同的方法?

(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 }

}())

最佳答案

你真的需要三个变量吗?我建议改用单个对象,它的键将充当您当前变量名的 Angular 色:

(function(){
    var obj = {
        a : {p:true,b:true},
        b : {em:true,i:true},
        c : {h1:true,strong:true}
    };

    var x = function(tagName){
       var types = {}
       for(var key in obj) {
           types[key] = obj[key].hasOwnProperty(tagName) && obj[key][tagName] === true;
       }
       return types; 
    }
    console.log(x("p"));
}());

http://jsfiddle.net/sKbPu/1/

关于javascript - 由另一个变量引用变量名,或从变量中确定变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11891911/

相关文章:

javascript - jQuery cssText 不使用变量

javascript - 无法变换流程图的 y 轴

javascript - Google Maps Api 显示灰色 map

javascript - java应用程序中的 session

javascript - 如何使用 jQuery DataTables 重新创建表

javascript - 更新 Knockout 中的可见绑定(bind)吗?

javascript - 哪些标签计入 form.elements?

javascript - 我想创建一个匿名函数,它将在另一个函数中调用

javascript - 安卓 : Use javascript in textview

javascript - ChartJS - 设置与 x 轴描述不同的悬停文本