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

您可以使用拼接

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

笔记

如果即使页面重新加载,您也想存储已经使用的内容,您可以使用 localStorage。这将保存已经显示的元素。(但是它将显示给其他人,为了防止这种情况,您可能需要使用一些服务器端代码,例如 PHP)

那么你将需要使用

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

并检查是否localStorage.setItem("used"+randno) == "true",如果是这样,您将需要制作一个其他随机数(使用 while 循环)。

请放心,您将使用 enoug elments,因为如果您的所有 elments 都已显示,您将陷入无限循环

您还必须注意,某些浏览器不支持 localstorage。如果您想了解更多信息,我建议您阅读上面的规范

于 2013-01-22T22:57:49.513 回答
0
var index = KeywordArray.indexOf("apple");
KeywordArray.splice(index, 1);

但当然,上述工作在客户端。

于 2013-01-22T22:51:53.763 回答