2016-12-20 3 views
1

를 지원하지 않습니다. 크롬과 파이어 폭스에서는이 오류 TypeError: Object doesn't support property or method 'find'IE에서 찾기위한 대안은 무엇입니까? 필자는이 오류 형식 오류를 받고 : 개체가 속성 또는 메서드 '발견'나는 내 코드</p> <pre><code>var route = Object.keys(Routes).find(matchingLang) </code></pre> <p>그것은 IE에서 지원되지에서 '찾기'를 사용하고 있습니다

그 던지기, fine.In 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 matchingLang = function (route) {return new RegExp('^' + route.replace('*', '.*')).test(browLoc) }       

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

내가 찾을 대신 '필터'를 사용하는 경우이다가 일치하는 모든 값을 반환합니다. 하나의 출력 즉 언어 값 하나만을 원합니다.

사람이 find()을 언급 한 바와 같이이 제발 help.Thanks

+0

확인할 수 있습니다. http://api.jquery.com/category/selectors/ –

+3

IE 용 polyfill을 사용해야합니다. Find 메소드가 IE에서 지원되지 않습니다. https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find – Raj

+0

이 경우에는 document.querySelector()를 사용할 수 없습니다. . 이 시나리오에서 '찾기'대신 사용할 수있는 것은 무엇입니까? – radiance88

답변

1

에 대한 대안을 알고있는 경우는 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