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

Nac*_*awg 6 javascript jquery internet-explorer

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

任意的例子,但这适用于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}
Run Code Online (Sandbox Code Playgroud)

或者替代任意的例子

var object = {
  ["a" + 50]: "value"
}
Run Code Online (Sandbox Code Playgroud)

问题似乎根植于[]运营商,但我不明白这个问题是如何或为何只在IE中发生.我没有在以前的版本中测试IE11,但我认为问题会在那里持续存在.

由于问题似乎与[]操作员本身有关,在变量中创建我的键然后将该变量推入我的[]将无法解决问题,所以我似乎都没有想法和谷歌的关键字.

那么有没有办法在IE中动态创建对象键?

Roc*_*mat 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);
}
Run Code Online (Sandbox Code Playgroud)