You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IE11中兼容Object.assign与map函数组合的JS代码写法

IE11兼容改写方案

你提供的代码在IE11环境异常,是因为用到了4个IE11不支持的语法特性:Object.assign 方法、=> 箭头函数、... 扩展运算符、[x.ID] 动态计算属性名,以下是兼容改写方案:


方案1:纯原生JS改写(无额外依赖)

该方案直接移除所有不兼容语法,逻辑和原代码完全一致,适合仅需要单段代码兼容的场景:

var dictionary = {};
var targetList = tempGroups[tempKey];
for (var i = 0; i < targetList.length; i++) {
  var currentItem = targetList[i];
  dictionary[currentItem.ID] = currentItem.Value;
}

改动说明

  • 把let替换为var,规避IE11对块级作用域的兼容缺陷
  • 箭头函数替换为普通函数声明
  • 移除Object.assign和扩展运算符,直接遍历数组项向空对象赋值,和原逻辑合并对象的效果完全相同
  • 改用对象方括号赋值的写法,替代动态计算属性名语法适配IE11

方案2:全局polyfill兼容(适合项目整体有ES6+兼容需求的场景)

如果项目中大量使用ES6+语法,可通过以下方式全局处理兼容:

  • 引入Object.assign的polyfill代码
  • 通过babel工具转译箭头函数、扩展运算符、动态属性名等ES6+语法为ES5版本

提示:如果仅需要兼容这段代码,优先选择方案1,避免引入不必要的依赖增加页面加载体积。


内容的提问来源于stack exchange,提问作者Himelu5

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:39:04