Javascript多维数组通过eval()

时间:2017-11-02 17:45:46

标签: javascript arrays

我想访问变量FR [0]。可变国家是“FR”。我以为会这样做:

console.log("eval country: " + eval("country"));
console.log("fr0: " + FR[0]);
 console.log("eval country0: " + eval("country")[0];  

输出结果为:

  eval country: FR
     fr0: http://www.example.co.uk/
    eval country0: F

我做错了什么?

编辑:澄清:国家变量发生变化。有时它是FR有时它是英国等等。我想它根据国家/地区包含的字符串访问适当的变量。

1 个答案:

答案 0 :(得分:1)

我想回答你的具体问题,你必须做一些事情:

eval(country + '[0]')

但这是一种可怕的做法,因为如果字符串是一些恶意的JS,那么就会对它进行评估,并且会发生坏事。最好只有一个对象存储数据,而不是将它们放在单独的变量中:

var myData = {
  "FR": ['http://example.co.fr', 'adf', 'asdf'],
  "UK": ['http://example.co.uk', 'asdf', 'asdf']
};

并像这样访问:

myData[country][0]