2016-03-29 8 views
0

Ich versuche, ein Javascript zu schreiben, das die Anzahl der negativen, Null und positiven Zahlen in einem Array zählt. Wenn ich dieses Skript ausführen, heißt es: "ReferenceError: Dokument ist nicht definiert"Ausgabe Probleme mit document.write

Ich weiß nicht, wie Sie ein Dokument definieren, da ich weiß, dass document.write Teil von node.js ist? Was ist der beste Weg, um die Variablen neg, zero und pos ausgeben zu lassen?

#!/usr/bin/env node 

// Function: counter 
// Parameter: -3, -1, 0, 0, 0, 4, 17, 29, 30 
// Returns the number of each in the array 
var input = new Array(-3, -1, 0, 0, 0, 4, 17, 29, 30); 
var zero = 0; 
var neg = 0; 
var pos = 0; 

function counter(input, zero, neg, pos) 
{ 
    switch (input) 
    { 
     case (input < 0): 
     neg++; 
     break; 

     case (input == 0): 
     zero++; 
     break; 

     case (input > 0): 
     pos++; 
     break; 
    } 

return document.write(neg, zero, pos); 
} 

counter(input); 
+0

macht keinen Sinn zu tun 'zurück document.write ...' Und ich glaube nicht, dass Sie document.write in Node verwenden möchten. – epascarello

+0

versuchen console.log statt – gaetanoM

+0

Dies ist leicht zu lösen: nicht mehr verwenden document.write mehr oder weniger .... –

Antwort

0

Sie auf alle Elemente zu Zyklus brauchen, ist in der Anordnung enthalten ist, und wenn Sie die Funktion mit nur einem Argument nennen schlage ich zu vermeiden, den anderen zu definieren drei .

Der Code ist:

var input = new Array(-3, -1, 0, 0, 0, 4, 17, 29, 30); 
    var zero = 0; 
    var neg = 0; 
    var pos = 0; 

    function counter(input) { 
     input.forEach(function(ele) { 
      switch (true) { 
       case (ele < 0): 
        neg++; 
        break; 
       case (ele == 0): 
        zero++; 
        break; 
       case (ele > 0): 
        pos++; 
        break; 
      } 
     }); 
    } 

    counter(input); 

    console.log(neg, zero, pos); 
0

Also ich habe es funktioniert mit console.log, aber jetzt sind die Ausgänge falsch. Mein Switch scheint das Array nicht richtig zu bewerten. Er druckt drei Nullen, egal, was der Wert der Eingangs

#!/usr/bin/env node 

// Function: counter 
// Parameter: -3, -1, 0, 0, 0, 4, 17, 29, 30 
// Returns the number of each in the array 
var input = new Array(-3, -1, 0, 0, 0, 4, 17, 29, 30); 
var zero = 0; 
var neg = 0; 
var pos = 0; 

function counter(input, zero, neg, pos) 
{ 
    switch (input) 
    { 
    case (input < 0): 
      neg ++; 
    break; 

    case (input == 0): 
      zero ++; 
    break; 

    case (input > 0): 
      pos ++; 
    break; 
    } 
} 

counter(input); 

console.log(neg, zero, pos); 
0

it is my understanding that document.write is part of node.js?

Nein, wirklich nicht. Die document object ist Teil der DOM-Schnittstelle in Browsern.

Sie möchten wahrscheinlich stattdessen console.log verwenden.