0

私のコードはランダムに文字列を選択し、javascript で画面に書き込みます。これは少し混乱するかもしれませんが、文字列をランダムに選択してページに書き込むときに、その文字列をコードから削除して二度と選択できないようにすることが可能かどうかを知りたいですか? 私のコードはこちら

    KeywordArray = new Array(7);  
    KeywordArray[0] = "apple";  
    KeywordArray[1] = "pear";  
    KeywordArray[2] = "orange";  
    KeywordArray[3] = "banana";  
    KeywordArray[4] = "stawberry"; 
    randno = Math.floor ( Math.random() * KeywordArray.length ); 

次に、HTMLページの下部に

    <script>document.write(KeywordArray[randno]);</script> 

アップルがランダムに選択されて画面に表示されると、配列から削除され、他の誰もアップルという単語を取得できないようにすることが可能かどうかを知りたいですか? これが紛らわしい場合は申し訳ありません。

4

3 に答える 3

1

何らかの情報をサーバー側に保存したいと考えていますが、javascript はクライアント側であるため、最適な選択ではありません。サーバーがサポートしている場合は、PHP を試してください。よろしくお願いします

于 2013-01-22T22:50:41.527 に答える
0
var index = KeywordArray.indexOf("apple");
KeywordArray.splice(index, 1);

もちろん、上記はクライアント側で機能します。

于 2013-01-22T22:51:53.763 に答える
0

スプライスを使用できます。

document.write(KeywordArray.splice(randno,1));

ノート

ページが再読み込みされても、既に使用されているものを保存したい場合は、localStorage を使用できます。これにより、すでに表示されている要素が保存されます。(ただし、他の人に表示されます。これを防ぐために、PHPなどのサーバー側のコードを使用することをお勧めします)

そのため、使用する必要があります

localStorage.setItem("used"+randno, "true");

そしてlocalStorage.setItem("used"+randno) == "true"、そうであれば、他の乱数を作成する必要があります(whileループを使用)。

すべての要素が表示されている場合は、無限ループに陥るので、要素をベーンすることを確認してください。

localstorage が特定のブラウザーでサポートされていないという事実にも注意する必要があります。詳細を知りたい場合は、仕様を読むことをお勧めします

于 2013-01-22T22:57:49.513 に答える