JavaScript: usare indexOf() sugli array in modo cross-browser

JavaScript: usare indexOf() sugli array in modo cross-browser

In JavaScript il metodo indexOf() può essere applicato anche agli array. Tuttavia questo metodo non ha alcun effetto sugli array in Internet Explorer 6 e 7. È necessario quindi trovare una soluzione cross-browser.

La seguente funzione di utility accetta come parametri l'array su cui effettuare la ricerca e il valore da cercare:


function arrayIndexOf(arr, val) {
        if (arr.indexOf) {
            return arr.indexOf(val);
        } else {
            var n = arr.length;
            while (n--) {
                if (arr[n] === val) {
                    return n;
                }
            }
            return -1;
        }
}