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上仍然不起作用……任何指针?非常感谢!