2017-01-23 6 views
1

Из многих статей я выбрал этот синтаксис для создания уникальных значений в массиве.Как собрать только уникальные значения в массиве в Internet Explorer 11 с помощью JavaScript?

pairs = pre_final_pairs.filter((elem, index) => pre_final_pairs.indexOf(elem) === index).join(' '); 

Это отлично работает во всех браузерах, кроме Internet Explorer 11.

Я попытался выяснить, какие команды из строки не совместим, и я обнаружил, что, может быть, IndexOf. Но даже если я попытался применить «исправление», упомянутое в How to fix Array indexOf() in JavaScript for Internet Explorer browsers, все еще страница не работает в IE11.

Также я загрузил библиотеку https://code.google.com/archive/p/ddr-ecma5/, чтобы гарантировать, что команды ECMA будут работать.

И еще получаю SCRIPT1002: Syntax error

Вы видите там неверная часть в команде?

ответ

2

Internet Explorer does support indexOf, но does not support arrow functions.

Вы можете легко исправить с помощью обычной функции для обратного вызова вместо:

pairs = pre_final_pairs.filter(
    function (elem, index) { 
     return pre_final_pairs.indexOf(elem) === index; 
    } 
).join(' '); 
+1

Отлично! Это работает! –