javascript - ECMAScript 6 Internet Explorer 11 - 我必须重新编写代码吗?

标签 javascript math internet-explorer-11

查找缺失号码的 Javascript 代码在 IE 11 中不起作用,但在 Chrome 和 Firefox 中有效。我刚知道 IE 11 不支持 EMCA 6.0

需要重做这一行for(var i=Math.min(...arr); i<Math.max(...arr); i++){

var str = "1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40;41;42;43;44;45;46;47;48;49;50;51;52;53;54;55;56;57;58;59;60;61;62;63;64;65;66;67;68;69;70;71;72;75;76;77;78;79;80;81;82;83;84;85;86;87;88;89;90;91;92;1001;1002;1003;1004;1005;1006;1007;73;";
function getMissingNumber(str){
  var arr = str.split(/\;/);
  var missingNum = [];
  for(var i=Math.min(...arr); i<Math.max(...arr); i++){
     if(arr.indexOf(i.toString()) === -1){
       missingNum.push(i);
       if(i){
       alert(i);return; }
     }
  }
  return missingNum;
}
console.log(getMissingNumber(str));
//alert(getMissingNumber(str));

最佳答案

一些答案​​建议您将代码转换为 ES5(使用 babel),这是一个可行的解决方案。

因此,如果您的项目很大并且您使用了很多 IE11 不支持的 ES6 功能(并且您希望支持 IE11),那么 babel 和/或其他工具值得一试(webpack、parcelJs 等)。

但是如果您只需要使此代码与 IE11/ES5 兼容,您可以使用 apply 调用 Math.min,就像这样;

Math.min.apply(null, array)

带有扩展运算符 (...) 和应用的示例: https://repl.it/@Benoit_Vasseur/spread-operator-to-ES5-for-array

申请文件:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply

关于javascript - ECMAScript 6 Internet Explorer 11 - 我必须重新编写代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54407274/

相关文章:

javascript - 渲染到 3D 纹理 webgl2

javascript - 当用户滚动到特定元素的末尾时如何运行 jQuery 代码?

javascript - 在椭圆形中画一个长方形

algorithm - 如何计算给定方向的最小平移向量?

python - 如何从 float 列表中获取 python 中整数的最大公约数?

javascript - 带有 polyfilled Function.name 的 IE11 Javascript 行为

javascript - 使用 JavaScript 从对象映射复合数组

javascript - 将条件语句与reactjs中的按钮渲染相关联

html - geoLocation.GetCurrentPosition 在 IE 11 中总是失败

HTML5 音频文件无法播放,显示无效源错误消息