我的代码随机选择一个字符串并用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>
我想知道当苹果被随机选择并放在屏幕上时是否有可能这样做,它会从数组中删除它,所以没有其他人可以得到苹果这个词?对不起,如果这令人困惑。
答案 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