why IE7 javascript array.indexOf is not working?

arrays, indexof, internet-explorer-7, javascript

Solution

Add this in your `document.ready` method:

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;
    }
}

This is needed because IE does not include this method up to IE8. The above function checks if it exists, if not it extends the Array prototype with it.

Problem

why in IE7 javascript array.indexOf is not working? Here is one sample ``` function loaderFn() { var arr=["0","1","2"]; var b = arr.indexOf("1") alert("Index of 1 is "+b); } ``` In IE7 in line 4 (arr.indexOf("1")) Object doesn't support property or method 'indexOf' error throws Why this hapening only in IE7? What is the way to find index no of a value in array using javascript for IE7?

Original source

Related problems