indexOf как ключ массива для цикла в IE8

Я использовал код, описанный здесь, но теперь, когда я делаю "для... в...", он получает функцию "indexOf" в качестве позиции индекса массива...

Пример кода:

var the_array=new Array();                  
for (key in the_array){
    console.log(key +"  -  "+the_array[key]);
} 

Этот код показывает это в консоли:

indexOf  -  function (searchElement /*, fromIndex */ ) {  
    "use strict";  
    if (this == null) {  
       throw new TypeError();  
    }  
    var t = Object(this);  
    var len = t.length >>> 0;  
    if (len === 0) {  
        return -1;  
    }  
    var n = 0;  
    if (arguments.length > 0) {  
        n = Number(arguments[1]);  
        if (n != n) { // shortcut for verifying if it's NaN  
            n = 0;  
        } else if (n != 0 && n != Infinity && n != -Infinity) {  
            n = (n > 0 || -1) * Math.floor(Math.abs(n));  
        }  
    }  
    if (n >= len) {  
        return -1;  
    }  
    var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);  
    for (; k < len; k++) {  
        if (k in t && t[k] === searchElement) {  
            return k;  
        }  
    }  
    return -1;  
}

Как я могу предотвратить отображение функции в качестве ключа в массиве?

Кстати, я знаю, что могу использовать функцию jquery inArray, но в этом случае я хотел бы использовать функцию indexOf...


person Cristiano Santos    schedule 04.04.2012    source источник
comment
Существует ли indexOf в IE8? Потому что у меня были проблемы, и мне пришлось найти функцию indexOf (и определить ее в моем JS) для моего проекта.   -  person Panagiotis    schedule 04.04.2012
comment
Его не существует, и я его тоже добавил. Проблема в том, что я использую некоторые for... in циклы во всем проекте, и теперь они возвращают ключи и свойства прототипа массива...   -  person Cristiano Santos    schedule 04.04.2012


Ответы (1)


Плохая идея использовать for...in в массивах по этой и другим причинам. Смотрите мой ответ здесь:

Почему 'for(var item in list)' с массивами считается плохой практикой в ​​JavaScript?

person Tim Down    schedule 04.04.2012