我需要在div中显示随机单词而不重复单词。
实施例: b 一个 C d
加: b 一个 b C d d 一个 一个 ç
$(document).ready(function($) {
words = ['a','b','c','d'];
function doSomething() {}
(function loop() {
var rand = Math.round(Math.random() * (3000 - 500)) + 500;
setTimeout(function() {
var thisWord = words[Math.floor(Math.random() * words.length)];
$("#container").append("<div class=\"conversation\">"+thisWord+"<div class=\"conversation\">");
doSomething();
loop();
}, rand);
}());
});
答案 0 :(得分:1)
您可以使用words
从.splice()
删除显示的字母,如果words
中没有任何内容,则停止显示字母。
jQuery(document).ready(function($) {
words = ['a','b','c','d'];
$(function() {
rand = setInterval(function() {
var thisWord = words[Math.floor(Math.random() * words.length)];
$("#container").append(thisWord);
// Remove the displayed letter from words
words.splice(words.indexOf(thisWord), 1);
// If there is nothing left in words, clear the interval.
if (words.length == 0) {
clearInterval(rand);
}
},800);
});
});
答案 1 :(得分:0)
您可以使用$.extend
创建words
数组的副本,然后您可以.splice
删除您添加的每个元素。然后,当数组为空时,您可以清除间隔:
jQuery(document).ready(function($) {
var words = ['a','b','c','d'];
$(function() {
//Create Copy
var wordsSpliced = $.extend(true, [], words);
//Save Interval Variable
var intervalAddWords = setInterval(function() {
//Clear Interval if all words shown
if (wordsSpliced.length == 0) clearInterval(intervalAddWords);
//Remove random word from wordsSpliced
var thisWord = wordsSpliced.splice(Math.floor(Math.random() * wordsSpliced.length), 1);
$("#container").append(thisWord);
},800);
});
});
答案 2 :(得分:0)
所以,我想知道为什么这段代码不适合你的目的? (还想知道完全相同的概念如何在以后发布并更多地投票,但那是另一个故事。)
$(document).ready(function($) {
words = ['a','b','c','d'];
var used = new Array();
var int = null;
$(function() {
int = setInterval(function() {
var r = Math.floor(Math.random() * words.length);
var thisWord = words[r];
words.splice(r,1);
$("#container").append(thisWord);
if(words.length == 0) {clearInterval(int);$("#container").append(' DONE');}
},800);
});
});
答案 3 :(得分:0)
这是我的最新代码:
$(document).ready(function($) {
words = ['a','b','c','d'];
function doSomething() {}
(function loop() {
var rand = Math.round(Math.random() * (3000 - 500)) + 500;
setTimeout(function() {
var thisWord = words[Math.floor(Math.random() * words.length)];
$("#container").append("<div class=\"conversation\">"+thisWord+"<div class=\"conversation\">");
doSomething();
loop();
}, rand);
}());
});
我需要在div中显示随机单词而不重复单词。
示例:b a c d
不是:b a b c d d a a c