Javascript 使用动态字符串名称引用数组

Javascript 使用动态字符串名称引用数组,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个数组 var ABCD=[{Key:"Milk",Value:"1" },{Key:"Bread",Value:"2" }]; 现在需要使用动态字符串值(从函数myFunction(“guest\u user”)返回)使用此数组中的键(ABCD)进行查找。我正在使用类似的东西,除了IE之外,它在所有浏览器中都能工作,因为eval(),如果有人能就此提供建议,那就太好了 var entry = eval(myFunction("guest_user")).find(function(

我有一个数组

 var ABCD=[{Key:"Milk",Value:"1" },{Key:"Bread",Value:"2" }];
现在需要使用动态字符串值(从
函数myFunction(“guest\u user”)
返回)使用此数组中的键(ABCD)进行查找。我正在使用类似的东西,除了IE之外,它在所有浏览器中都能工作,因为
eval()
,如果有人能就此提供建议,那就太好了

var entry  = eval(myFunction("guest_user")).find(function(e) { return e.Key === "Milk"; });
返回值
myFunction(“guest\u user”)
是ABCD,这是上面定义的数组名

myFunction正在返回请求参数

function myFunction(key) { 
  var result = new RegExp(key + "=([^&]*)", "i").exec(window.location.search); 
  return result && unescape(result[1]) || ""; 
}
IE11中的问题不是
eval()
函数。这是
find()
方法

请参阅,您将看到Internet Explorer不支持
find()

但是,您可以使用同一链接中的Polyfill将功能添加到IE中

也就是说,最好避免同时使用
eval()
。可以通过将数组放置在对象中来实现,例如:

var obj = {ABCD: [{Key ...}];
然后,您可以通过调用以下命令来引用相应的数组:

obj[myFunction("guest_user")].find(...
IE11中的问题不是
eval()
函数。这是
find()
方法

请参阅,您将看到Internet Explorer不支持
find()

但是,您可以使用同一链接中的Polyfill将功能添加到IE中

也就是说,最好避免同时使用
eval()
。可以通过将数组放置在对象中来实现,例如:

var obj = {ABCD: [{Key ...}];
然后,您可以通过调用以下命令来引用相应的数组:

obj[myFunction("guest_user")].find(...

添加polyfill方法()和Rick建议的obj[myFunction(“guest_用户”)].find(正在IE上工作)添加polyfill方法()和Rick建议的obj[myFunction(“guest_用户”).find(正在IE上工作)

myFunction(“guest_用户”).find(…)
你不需要
eval
为什么要使用
eval
?这是未定义的。
myFunction()
的代码确实需要成为这个问题的一部分。myFunction正在返回请求参数
myFunction(“guest\u user”)。查找(…)
你不需要
eval
为什么要使用
eval
?这是未定义的。
myFunction()
的代码确实需要成为这个问题的一部分。myFunction正在返回一个请求参数var entry=obj[myFunction(“guest_user”)]。find(函数(e){return e.Key==“Milk});但是我们仍然有find,它在IE上仍然不起作用……任何指针?非常感谢!var entry=obj[myFunction(“guest_user”)]。find(function(e){returne e.Key==“Milk”);但是我们仍然有find,它在IE上仍然不起作用……任何指针?非常感谢!