在IE 11中动态创建对象键(预期标识符,字符串或数字,而不是逗号问题)

我正在寻找一种动态创建对象键(措辞正确吗?)的解决方案。

任意的例子,但这适用于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中动态创建对象键?

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); }