How to fix Array indexOf() in JavaScript for Internet Explorer browsers How to fix Array indexOf() in JavaScript for Internet Explorer browsers javascript javascript

How to fix Array indexOf() in JavaScript for Internet Explorer browsers


Do it like this...

if (!Array.prototype.indexOf) {}

As recommended compatibility by MDC.

In general, browser detection code is a big no-no.


Alternatively, you could use the jQuery 1.2 inArray function, which should work across browsers:

jQuery.inArray( value, array [, fromIndex ] )


The full code then would be this:

if (!Array.prototype.indexOf) {    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;    }}

For a really thorough answer and code to this as well as other array functions check out Stack Overflow question Fixing JavaScript Array functions in Internet Explorer (indexOf, forEach, etc.).