2016-12-20 10 views
1

я использую «найти» в моем кодеКакая альтернатива для поиска в IE? Im получение этой TypeError ошибки: Объект не поддерживает свойство или метод «найти»

var route = Object.keys(Routes).find(matchingLang) 

Он не поддерживает в IE. В хроме и светлячок работает fine.In IE, его метания эта ошибка TypeError: Object doesn't support property or method 'find'

Это мой код

var browLoc="en-GB" 

    var Routes ={ 
       'en-*':'en_US', 
       'es-*':'es_ES', 
       'pt-*':'pt_PT', 
       'fr-*':'fr_FR', 
       'de-*':'de_DE', 
       'ja-*':'ja_JP', 
       'it-*':'it_IT', 
       '*':'en_US'  
      }; 

    var matchingLang = function (route) {return new RegExp('^' + route.replace('*', '.*')).test(browLoc) }       

    var route = Object.keys(Routes).find(matchingLang); 

Если я использую «фильтр» вместо поиска, он возвращает все значения соответствия. Я хочу только один выход, то есть только одно значение языка.

Если кто-нибудь знает какие-либо альтернативы для этого, пожалуйста, help.Thanks

+0

Вы можете проверить http://api.jquery.com/category/selectors/ –

+3

Вы должны использовать polyfill для IE. Метод поиска не поддерживается в IE, вы можете просмотреть этот https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find – Raj

+0

В этом случае я не смог использовать document.querySelector() , Что я могу использовать для этого сценария вместо «найти»? – radiance88

ответ

1

Как заявил find() не поддерживается в IE. Не знаете, почему вам нужно сделать это сложным. Просто разделите и добавьте к нему.

var browLoc="en-GB" 

var Routes ={ 
      'en-*':'en_US', 
      'es-*':'es_ES', 
      'pt-*':'pt_PT', 
      'fr-*':'fr_FR', 
      'de-*':'de_DE', 
      'ja-*':'ja_JP', 
      'it-*':'it_IT', 
      '*':'en_US'  
     }; 

var lookup = browLoc.split("-")[0] + "-*"; 
var code = Routes[lookup] || Routes["*"]; 
console.log(code); 
+0

Спасибо большое! Да, это просто – radiance88

 Смежные вопросы

  • Нет связанных вопросов^_^