访问索引数组中的引用变量,避免使用eval()函数

时间:2013-02-02 15:48:46

标签: javascript arrays eval

使用jsbin.com工具测试Javascript代码我使用了eval()函数,但JSBin发出的警告称“Eval is Evil”。我做了一些关于使用eval()函数的搜索,有些消息来源说总是可以避免使用eval()。

我的代码需要使用其他数组中的参数访问数组。看到这段代码:

var Collection = {
                  "cell"  : "value[3]", 
                  "lines" : "source[1..7]", 
                  "title" : "greeting"
                 };

var Data = {
            source : ["a", "b", "c"],

            value   : [
                       "done",
                       "easy", 
                       "f", 
                       "g", 
                       "h", 
                       "i", 
                       "j" 
                      ],

            greeting : "Hi!"         

       };

function Process()
 {
  var x = "cell";

  console.log("value[4] = " + Data.value[4]);
  console.log("C : " + Collection[x]);
  console.log("value['cell'] = " + eval("Data." + Collection[x]));
 }

输出

value[4] = h
C : value[3]
value['cell'] = g

recomendations表示使用点表示法进行访问,就像访问value [4]一样,但是要访问的值将包含在变量中,如'x',在本例中为内容“cell”。此值用于访问Collection数组,并选择将使用的值和Data数组。我使用eval()函数解决它。

如果没有eval()??

,有没有办法做到这一点

0 个答案:

没有答案