2016-05-27 5 views
1

Ich versuche gerade, eine Funktion als eine Zeichenfolge zu verwenden, und es scheint nicht, dass es möglich ist. Um Ihnen ein Beispiel dafür, was ich nehme meinen einen Blick auf die Datei unter:Wie verwende ich eine Funktion als String?


<!DOCTYPE html> 
<html> 
<title>Test Webpage</title> 
<div id = "storyDisplay"></div> 
<script> 
var story = []; 
var dangerElements = ["test1","test2","test3"]; 
function danger() { 
    story.push(dangerElements[Math.round(Math.random()*dangerElements.length)]; 
    document.getElementById("storyDisplay").innerHTML = story.join(""); 
} 

</script> 
</html> 

Nun, wenn ich zur Eingabe versuchen, diesen Code kommt es heraus als:



Grundsätzlich gibt es keine Ausgabe. Ich habe die Datei überprüft und es scheint nicht, dass es einen Syntaxfehler gibt, also was passiert?

[EDIT] Sorry, hoppla, habe vergessen, in diesem Teil hinzuzufügen. Ich möchte Gefahr() wie folgt verwenden:

var genStory = [danger()]; 

und ich möchte es als eine zufällige Zeichenfolge in der Geschichte ausgeben.

+5

kann ich einen Syntaxfehler sehen. Öffnen Sie Ihre Konsole (drücken Sie F12 unter Windows oder Opt + Cmd + I auf dem Mac) und es wird Ihnen sagen, was es ist. Word to the wise: Den Code richtig einrücken. Es wird das Debuggen * in Zukunft * vereinfachen. –

+1

Zusätzlich sollten Sie 'Math.floor' nicht' Math.round' verwenden, wenn Sie ein zufälliges Element in einem Array wie diesem berechnen. 'Math.round' gibt Ihnen gelegentlich einen Index außerhalb des zulässigen Bereichs, wenn es * up * außerhalb des Bereichs des Arrays aufrundet. – jered

+1

Was bedeutet "eine Funktion als String verwenden"? Sie versuchen nur, die Funktion aufzurufen, nicht als etwas Besonderes. – Barmar

Antwort

0

Ist das, was Sie nach?

var genStory = [(danger)()]; 
 
alert(genStory);
<!DOCTYPE html> 
 
<html> 
 
<title>Test Webpage</title> 
 
<div id = "storyDisplay"></div> 
 
<script> 
 
var story = []; 
 
var dangerElements = ["test1","test2","test3"]; 
 
function danger() { 
 
    story.push(dangerElements[Math.round(Math.random()*dangerElements.length)]); 
 
    return document.getElementById("storyDisplay").innerHTML = story.join(""); 
 
} 
 

 
</script> 
 
</html>

0

Sie haben gerade eine eckige Klammer fehlt und schließende Klammer auf der Leitung 9

story.push(dangerElements[Math.round(Math.random()*dangerElements.length)]); 
+0

Ich habe die eckigen Klammern korrigiert, aber es funktioniert immer noch nicht. –