0

Я использовал код, описанный here, но теперь, когда я делаю «для ... в ...» cicle, он получает функцию «IndexOf» в качестве позиции индекса массива ...«indexOf» как ключ массива в «for ... in» cicle в IE8

Пример кода:

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

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

Btw, я знаю, что я могу использовать функцию inArray из JQuery, но в этом случае, я хотел бы использовать функцию «IndexOf» ...

+0

ли IndexOf существует на IE8? Потому что у меня были проблемы, и мне пришлось найти функцию indexOf (и определить ее на моем JS) для моего проекта. – Panagiotis

+0

Это не существует, и я добавил его тоже. Проблема в том, что я использую некоторые «для ... в» цикле во всем проекте, и теперь они возвращают ключи и свойства прототипа массива ... –

ответ

Смежные вопросы