我正在寻找一种能够动态创建对象键(措辞正确吗?)的解决方案。
任意示例,但这适用于chrome和firefox
var weeks = {}
for(var i = 0; i < 5; i++){
$.extend(weeks, {["week" + i] : (i * 2)}
}
//weeks = {"week0":0,"week1":2,"week2":4,"week3":6,"week4":8}
或替代任意示例
var object = {
["a" + 50]: "value"
}
这个问题似乎植根于[]
运算符,但我不明白这个问题是如何或为什么只出现在IE中。我没有在以前的版本中测试IE11,但我认为问题会在那里持续存在。
由于问题似乎与[]
运算符本身有关,在变量中创建我的键然后将该变量推送到我的[]中无法解决问题,所以我似乎都是谷歌的想法和关键词。
那么有没有办法在IE中动态创建对象密钥?
答案 0 :(得分:7)
IE11不像Chrome,Firefox甚至Edge那样是“现代”网络浏览器。它不支持ES6(ES2015)的新“对象文字扩展”。
您使用的语法称为“计算属性键”,您不能在IE11中使用它。你需要以“老式”的方式做到这一点。
var weeks = {};
for(var i = 0; i < 5; i++){
var tmp = {};
tmp["week" + i] = i*2;
$.extend(weeks, tmp);
}