2017-06-01 6 views
0

Ich erhalte eine Fehlermeldung "Kann Eigenschaft 'toString' von undefined nicht lesen" beim Versuch, nur numerische Werte aus dem folgenden Array abzurufen. Obwohl ich sehe, dass die Ausgabe richtig gegeben wird, bekomme ich diesen Fehler und der Code schlägt fehl.Abrufen von nur ganzzahligen Werten aus gemischten Zeichen Array

var array=['~ 9 view passages','~ 17 view passages','~ 1 view passages','~ 3 view passages','~ 4 view passages','~ 1 view passages']; 
    for (var i=0;i<=array.length;i++){ 
    var Arraystring=array[i].toString(); 
    var temp1 = Arraystring.replace(" view passages",""); 
    var temp2 = temp1.replace("~",""); 
    var temp3=parseInt(temp2); 
    console.log("String converted Array "+Arraystring); 
    console.log("Stripped Array "+temp2); 
    console.log("Integer Array "+temp3); 
    } 

Fehler: Kann nicht Eigentum 'toString' undefinierter

+0

Verwendung für (var i = 0; i binariedMe

+0

möglicherweise Ihre Array-Länge ist nicht unbedingt 11 – binariedMe

+1

Bitte entfernen Gleichheit und schreiben streng: for (var i = 0; i binariedMe

Antwort

2

Sie sollten < array.length anstelle von <= array.length lesen.

Momentan analysieren Sie außerhalb der Grenzen Werte, so dass es die toString() Funktion nicht aufrufen kann.

Versuchen Sie, diese Art und Weise

var array = ['~ 9 view passages', '~ 17 view passages', '~ 1 view passages', '~ 3 view passages', '~ 4 view passages', '~ 1 view passages']; 
for (var i = 0; i < array.length; i++) { 
    var Arraystring = array[i].toString(); 
    var temp1 = Arraystring.replace(" view passages", ""); 
    var temp2 = temp1.replace("~", ""); 
    var temp3 = parseInt(temp2); 
    console.log("String converted Array " + Arraystring); 
    console.log("Stripped Array " + temp2); 
    console.log("Integer Array " + temp3); 
} 
+1

Nicht wirklich eine andere Antwort als der Typ, der den Kommentar gab – Sagar

1

Ihr Array nur 5 Elemente enthält.

Aber Sie versuchen, Elemente bis zu 10 zu lesen, daher Ihr Fehler obwohl Skript ordnungsgemäß funktioniert.

Geändert Ihr Skript, um bis zur Array-Länge zu lesen.

var array = ['~ 9 view passages', '~ 17 view passages', '~ 1 view passages', '~ 3 view passages', '~ 4 view passages', '~ 1 view passages']; 
 
for (var i = 0; i < array.length; i++) { 
 
    var Arraystring = array[i].toString(); 
 
    var temp1 = Arraystring.replace(" view passages", ""); 
 
    var temp2 = temp1.replace("~", ""); 
 
    var temp3 = parseInt(temp2); 
 
    console.log("String converted Array " + Arraystring); 
 
    console.log("Stripped Array " + temp2); 
 
    console.log("Integer Array " + temp3); 
 
}

Verwandte Themen