如何在随机选择的javascript中删除字符串

时间:2013-01-22 22:47:09

标签: javascript arrays

我的代码随机选择一个字符串并用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> 

我想知道当苹果被随机选择并放在屏幕上时是否有可能这样做,它会从数组中删除它,所以没有其他人可以得到苹果这个词?对不起,如果这令人困惑。

3 个答案:

答案 0 :(得分:1)

我怀疑你想在服务器端存储一些信息,但javascript是客户端的,所以它不是最好的选择。如果您的服务器支持Php,请尝试Php。 最好的问候

答案 1 :(得分:0)

var index = KeywordArray.indexOf("apple");
KeywordArray.splice(index, 1);

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

答案 2 :(得分:0)

您可以使用splice

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

注意

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

那么你需要使用

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

并检查是否localStorage.setItem("used"+randno) == "true",如果是这样,则需要制作另一个随机数(带有while循环)。

因为如果所有的元素都被展示出来,那么你就会变成无限循环

您还必须意识到某些浏览器不支持localstorage这一事实。如果您想了解更多信息,我建议您阅读其中的spec's