我想在JavaScript中使用<input/>
的提交对数组进行随机播放,然后将[0]
从数组中吐出到ID为message
的div中。但是当我再次按下提交按钮时。我想获得数组的[1]
。在下一次提交[2]
。只要数组是,我想继续这个。而不是从[0]
开始。
我希望它如何运作:
HTML:
<form action="" method="post" onsubmit="return submit()">
<input type="submit" id="submit" value="Submit!">
</form>
<div id="message">
JS:
function submit() {
message = ["Message 1","Message 2","Message 3"] // I want more messages than this.
// The shuffle script here.
document.getElementById("message").innerHTML = message;
return false;
}
我已经设置了阵列。但我希望它被洗牌,并在第二次提交时吐出另一条消息,这样我就不会有两次相同的消息。
这个想法只是从数组中获取一条随机消息,而不会在第二次提交后两次收到相同的消息。
如果您有这样做的想法请告诉我。
答案 0 :(得分:1)
您可能希望在功能之前设置计数器,然后在功能内部将消息设置为阵列中的计数器位置。然后当你的计数器达到数组的长度时,将计数器重置为0.这样的东西
var count = 0;
var message = ["Message 1","Message 2","Message 3"] // probably want this outside your submit function so its not declared everytime the function is called
function submit() {
// The shuffle script here.
document.getElementById("message").innerHTML = message[count];
if ((count + 1) >= message.length) {
count = 0; // if the count + 1 is more than or equal to the array length then reset the counter
} else {
count += 1; // increase the count
}
return false;
}
答案 1 :(得分:0)
创建0到2之间的随机数。使用此数字作为索引从数组中获取消息,如下所示:
function submit() {
var message = ["Message 1","Message 2","Message 3"];
var randomIndex = Math.floor((Math.random() * 2));
var myMessage = message[randomIndex];
document.getElementById("message").innerHTML = myMessage;
return false;
}
答案 2 :(得分:0)
你可以用这个函数来对数组进行洗牌。
Call<Root> call = apiServiceImplementation.getResponseForApi(key, auth_key, password);
call.enqueue(new Callback<Root>() {
@Override
public void onResponse(Call<Root> call, Response<Root> response) {
Root data = response.body();
}
@Override
public void onFailure(Call<Root> call, Throwable t) {
Log.e("TAG", "onFailure: " );
}
});