ECMAScript 6 Internet Explorer 11 - Нужно ли заново делать код? - PullRequest
0 голосов
/ 28 января 2019

Код 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));

1 Ответ

0 голосов
/ 28 января 2019

В некоторых ответах предлагается перенести свой код в ES5 (с babel), и это рабочее решение.

Так что, если ваш проект большой и вы используете много функций ES6, которые не поддерживаются в IE11 (и вы хотите поддерживать IE11), тогда стоит проверить babel и / или другие инструменты (webpack, parcelJs и т. д.).

Но , если вам просто нужно сделать этот код совместимым с IE11 / ES5Вы можете просто позвонить Math.min с apply, вот так;

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...