2017-01-08 1 views
-1

Ich habe Probleme, eine einfache Funktion mit einem Array auszuführen, es läuft undefined, aber wenn ich es logge logge ich das richtige Ergebnis?Warum zeigt dieser Code "undefiniert" an, wenn er in die Browserkonsole eingefügt wird?

Bitte kann jemand helfen?

var test = (function (newThing){ 

    newThing = [1,2,3,4,5,6]; 

    var myarray = newThing.map(n=>n*n) 
    .reduce((a,b)=> {return a+b}); 

    return myarray; 
})(); 
+2

Die Konsole versucht immer, den Rückgabewert eines Ausdrucks zu protokollieren. 'var x = 1' liefert keinen Rückgabewert, also 'undefined'. Entfernen Sie 'var test =' und Sie werden den Rückgabewert in der Konsole sehen. – BrunoLM

+0

Ich habe die Bearbeitung rückgängig gemacht, da das Ausführen des Codes in einem Snippet das vom OP beschriebene Verhalten nicht repliziert. (Meine Antwort ist ein CW, da ich sicher bin, dass es ein Duplikat gibt, also habe ich es nicht wieder geöffnet.) –

+2

Duplikat, wahrscheinlich: [Warum führt die JavaScript-Variablendeklaration an der Konsole dazu, dass "undefined" gedruckt wird?] (https://stackoverflow.com/questions/22844840/why-does-javascript-variable-declaration-at-console-results-in-undefined-being) – apsillers

Antwort

3

Es ist, weil, wenn Sie diesen Code in der Konsole einfügen, die Konsole das Ergebnis der var Erklärung zeigt, die undefined ist. Der Code ist in Ordnung, und test wird richtig eingestellt, es ist nur der Effekt von Code beginnend mit var in der Konsole.

Verwandte Themen