Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

why IE7 javascript array.indexOf is not working? [duplicate]

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?

like image 771
Gowsikan Avatar asked Dec 27 '22 06:12

Gowsikan


1 Answers

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.

like image 143
Rob Avatar answered Jan 07 '23 07:01

Rob