Array.indexOf i problem w przeglÄ…darce Internet Explorer
PracujÄ…c przy jednym z projektów naciÄ…Å‚em siÄ™ na gÅ‚upiÄ… rzecz. W javascript potrzebowaÅ‚em odnaleźć sprawdzić, czy pewien element znajduje siÄ™ w tablicy. Intuicyjnie zastosowaÅ‚em tutaj metodÄ™ indexOf, czyli coÅ› w tym stylu:
var tab = jakis_tam_string.split(','); // słowa rozdzielone przecinkami rzutuję na tablicę if(tab.indexOf('słowo') < 0) { // jeśli tablica nie zawiera tego elementu to coś tam robimy }
Wszystko byÅ‚o Å‚adnie i piÄ™knie, ale oczywiÅ›cie nie w Internet Explorer (mowa tu o wersji 8, bo na takiej tylko teraz testujÄ™ dziaÅ‚anie kodu). Co siÄ™ okazuje? Po latach rozwijania tej przeglÄ…darki, zespóÅ‚ Microsoftu nadal nie zaimplementowaÅ‚ tej funkcji! Jej wywoÅ‚anie skutkuje bÅ‚Ä™dem o nieznanej metodzie i wysypaniem dziaÅ‚ania kodu. Zasadniczo można to samemu zaimplementować, dodajÄ…c tÄ… metodÄ™ - elastyczność javascriptu na to pozwala. Ale w sumie po co, skoro i tak jednoczeÅ›nie korzystam z biblioteki jQuery :-) Oferuje ona metodÄ™ dajÄ…cÄ… mi dokÅ‚adnie to, co chcÄ™:
if(jQuery.inArray('słowo',tab) < 0) { // i tutaj nasz kod }
I teraz wszystko dziaÅ‚a jak trzeba również w IE :-)
Oj wstyd panowie programiści z MS, wstyd...