IE11 Javascript: let [array] of object.entries "SCRIPT1010: Expected identifier" 错误

IE11 Javascript: let [array] of object.entries "SCRIPT1010: Expected identifier" error

在此代码块中,我在 IE11 的第一行发现 "SCRIPT1010: Expected Identifier" 错误。这在所有其他主要浏览器中都能完美运行。

for (let [key, value] of Object.entries(CompanySettings)) {
 if (value == true) {    
   document.getElementById(key).removeAttribute("checked");
 }
 if (value == false) {
  document.getElementById(key).setAttribute("checked", "no");
 }
}

我假设这是因为它是 ES6 功能,在 IE 中不可用,但我想知道是否有一个普通的旧 JS 替代品我可以使用在 IE11 中工作的 let.. of..。我并不是真的有兴趣添加一个额外的库来获得这个块 运行.

您可以使用 for ... in statement 并迭代键。

for (var key in CompanySettings) {
    if (CompanySettings[key]) { // assuming true or false values
        document.getElementById(key).removeAttribute("checked");
    } else {
        document.getElementById(key).setAttribute("checked", "no");
    }
}

也许您需要再次检查是否属于自己的财产

for (var key in CompanySettings) {
    if (!CompanySettings.hasOwnProperty(key)) continue;
    if (CompanySettings[key]) { // assuming true or false values
        document.getElementById(key).removeAttribute("checked");
    } else {
        document.getElementById(key).setAttribute("checked", "no");
    }
}