2016-05-27 10 views
1

私は文字列として関数を使用しようとしていますが、それは可能ではないようです。私が入力しようとすると、このコードはそれとして出てくる今関数を文字列として使用する方法は?


<!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> 


あなたに私は以下のファイルを見て何を意味するかの例を与えるために、


基本的に出力はありません。ファイルをチェックしたところ、構文エラーがあるようには見えなかったので、何が起こっていますか?

[編集]申し訳ありませんが、この部分に追加することを忘れてしまいました。私はこのようにdanger()を使いたい:

var genStory = [danger()]; 

そして私は物語の中でランダムな文字列として出力したい。

+5

私は、構文エラーを見ることができます。コンソールを開く(WindowsではF12、MacではOpt + Cmd + I)、それが何であるかがわかります。あなたのコードを正しくインデントしてください。将来のデバッグ*を容易にします。 –

+1

さらに、そのような配列の中のランダムな要素を計算するときは、 'Math.round'ではなく' Math.floor'を使うべきです。 'Math.round'は時折、配列の範囲を超えて* up *を丸めるときに、範囲外のインデックスを与えることがあります。 – jered

+1

「関数を文字列として使用する」とはどういう意味ですか?あなたは関数を特別なものとして使うのではなく、関数を呼び出そうとしています。 – Barmar

答えて

0

に括弧を閉じた、これはあなたが後にしている何ですか?

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

あなただけの角括弧が欠落し、ライン9

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

角括弧を修正しましたが、まだ動作しません。 –

関連する問題