2016-10-19 4 views
2

bekommen Ich habe diese Funktion in javascript:Uncaught Reference in Javascript

var summaryObj = JSON.parse(jsonStr); 
var fieldsToConvertToFixedNumbers = ["total_wt_arr_slp", "total_wt_ivwap_slp"]; 

for(var i = 0; i < summaryObj.length; i++) { 
    var obj = summaryObj[i]; 
    for(key in obj) { 
     if(fieldsToConvertToFixedNumbers.indexOf(key) != -1) { 
     obj[key] = Number(obj[key]).toFixed(2); 
     } 
    } 
} 

Warum ich die folgende Fehlermeldung erhalten:

Uncaught ReferenceError: key is not defined 

Wie dieses Problem beheben?

+0

, welche Linie diesen Fehler zeigt? Was ist "ZusammenfassungObj"? –

+0

@RocketHazmat für (Schlüssel in obj) zeigt den Fehler – Angad

+1

'für (var Schlüssel in obj)' oder neue ESNext stuff 'für (lassen Sie Schlüssel in obj)' – Keith

Antwort

4

Es ist, weil Ihr Schlüssel nicht definiert ist. Sie müssen sich ändern:

for(key in obj) { 

zu

for(var key in obj) { 

Ihr Schlüssel zu definieren.

+0

Oh yeah! Ich weiß nicht, dass es vorher auch ohne var funktioniert hat. :/ – Angad

+1

@Angad In weniger strengen Umgebungen ist es egal, es lässt Sie es undefined verwenden. Heutzutage werden jedoch die meisten modernen Browser und viele Umgebungen und/oder Präprozessoren strengere Standards durchsetzen, wodurch dieser Fehler jetzt auftritt. – samanime

1

Erklären Sie key bevor Sie es verwenden.

for(var key in obj)

Ich hoffe, es wird Ihr Problem lösen.

Verwandte Themen