0

Ich habe den Code here beschrieben, aber jetzt, wenn ich ein "für ... in ..." cicle, es bekommt die Funktion "indexOf" als Indexposition des Array ..."indexOf" als Schlüssel des Arrays in "für ... in" cicle in IE8

Beispielcode:

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

Dieser Code zeigt dies in der Konsole:

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

wie konnte ich die Funktion erscheinen verhindern als ein Schlüssel auf dem Array?

Btw, ich weiß, dass ich die InArray Funktion von jQuery verwenden kann, aber in diesem Fall würde Ich mag die „indexOf“ Funktion verwenden ...

+0

Does indexOf existieren auf IE8? Weil ich Probleme hatte und ich eine indexOf Funktion finden musste (und sie auf meiner JS definieren) für ein Projekt von mir. – Panagiotis

+0

Es existiert nicht und ich habe es auch hinzugefügt. Das Problem ist, dass ich einige "for ... in" -Zeilen im gesamten Projekt verwende und nun die Schlüssel und die Prototypeigenschaften des Arrays zurückgeben ... –

Antwort