Se você já trabalhou com JavaScript, sabe que o Internet Explorer não implementa a função ECMAScript para Array.prototype.indexOf () [incluindo o Internet Explorer 8]. Não é um problema enorme, porque você pode estender a funcionalidade da sua página com o seguinte código.
Array.prototype.indexOf = function(obj, start) {
for (var i = (start || 0), j = this.length; i < j; i++) {
if (this[i] === obj) { return i; }
}
return -1;
}
Quando devo implementar isso?
Devo envolvê-lo em todas as minhas páginas com a seguinte verificação, que verifica se a função protótipo existe e, caso contrário, vá em frente e estenda o protótipo Array?
if (!Array.prototype.indexOf) {
// Implement function here
}
Ou verifique o navegador e, se for o Internet Explorer, basta implementá-lo?
//Pseudo-code
if (browser == IE Style Browser) {
// Implement function here
}
Array.indexOf
não leva em consideração índices iniciais negativos. Veja a implementação da lacuna de sugestões da Mozilla aqui: developer.mozilla.org/en/JavaScript/Reference/Global_Objects/…
Array.prototype.indexOf
não faz parte do ECMA-262 / ECMAScript. Veja ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf Talvez você esteja pensandoString.prototype.indexOf
...