簡體   English   中英

ECMAScript 6 Internet Explorer 11-我需要重新執行代碼嗎?

[英]ECMAScript 6 internet explorer 11 - Do I have to re-do my code?

查找丟失號碼的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/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/apply

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM