我有一些代码,我有一个x数量的项目数组。在这种情况下,视频,我想随机调用一个视频,但是如果已经调用的当前视频与随机数相同,我希望它生成另一个随机数,直到它是唯一的。
这是我的代码:
var videoLinks = [
['<iframe id="vid" src="https://www.youtube.com/embed/nYm2G4MnSkY?autoplay=1" frameborder="0" allowfullscreen></iframe>'],
['<iframe id="vid" src="https://www.youtube.com/embed/wAgZVLk6J4M?autoplay=1&start=5&end=45" frameborder="0" allowfullscreen></iframe>'],
['<iframe id="vid" src="https://www.youtube.com/embed/ix9wpslKwBE?autoplay=1" frameborder="0" allowfullscreen></iframe>'],
['<iframe id="vid" src="https://www.youtube.com/embed/OJJ-iLsQOPc?autoplay=1&iv_load_policy=3" frameborder="0" allowfullscreen></iframe>'],
['<iframe id="vid" src="https://www.youtube.com/embed/rore790l_sk?autoplay=1&start=12&end=94" frameborder="0" allowfullscreen></iframe>'],
];
var randomNumber = function () {
var getRandomNumber = Math.floor(Math.random() * 5);
var random = videoLinks[getRandomNumber]
document.getElementById("videoWrapper").innerHTML = random[0];
};
randomNumber(); // To call the function on load
答案 0 :(得分:4)
使用变量来检查数字是否相同。
这样的事情:(使用LastNumber存储lastNumber)如果已经使用了,我们将再试一次)
In [1]: %paste
import pandas as pd
bids = [100, 101, 101, 102]
offers = [101, 102, 102.25, 103]
data = {'bids': bids, 'offers': offers}
index = [0, 1, 1, 2]
df = pd.DataFrame(data=data, index=index)
In [2]: df
Out[2]:
bids offers
0 100 101.00
1 101 102.00
1 101 102.25
2 102 103.00
In [3]: df.ix[1]
Out[3]:
bids offers
1 101 102.00
1 101 102.25
In [4]: df.ix[1].tail(1)
Out[4]:
bids offers
1 101 102.25
答案 1 :(得分:0)
您可以创建一个数组来保留现有的数字。
var existingNumbers = [];
var maxNumbers = 5;
var randomNumber = function() {
if (existingNumbers.length != maxNumbers) {
do {
getRandomNumber = Math.floor(Math.random() * maxNumbers);
} while (existingNumbers.indexOf(getRandomNumber) > -1);
existingNumbers.push(getRandomNumber);
var random = videoLinks[getRandomNumber]
document.getElementById("videoWrapper").innerHTML = random[0];
}
};
答案 2 :(得分:0)
首先,为什么要在数组中包装所有这些字符串?我在下面的解决方案中放弃了它们。 无论如何,最简单,最干净的解决方案是克隆数组,并从新数组中删除选定的URL。
var videoLinks = [
'<iframe id="vid" src="https://www.youtube.com/embed/nYm2G4MnSkY?autoplay=1" frameborder="0" allowfullscreen></iframe>',
'<iframe id="vid" src="https://www.youtube.com/embed/wAgZVLk6J4M?autoplay=1&start=5&end=45" frameborder="0" allowfullscreen></iframe>',
'<iframe id="vid" src="https://www.youtube.com/embed/ix9wpslKwBE?autoplay=1" frameborder="0" allowfullscreen></iframe>',
'<iframe id="vid" src="https://www.youtube.com/embed/OJJ-iLsQOPc?autoplay=1&iv_load_policy=3" frameborder="0" allowfullscreen></iframe>',
'<iframe id="vid" src="https://www.youtube.com/embed/rore790l_sk?autoplay=1&start=12&end=94" frameborder="0" allowfullscreen></iframe>'
];
var temp = videoLinks.slice();
function randomVideo(){
var r = Math.floor(Math.random()*temp.length);
return temp.splice(r, 1);
}
答案 3 :(得分:0)
randojs.com使其变得简单:
Content-Transfer-Encoding: quoted-printable\n
然后,您可以遍历videoLink以随机顺序获取值。这是您获得第一个随机值的方法:
rawMailBody
用尽时,如有需要,只需生成一个新序列即可。
您只需要在html文档的开头添加以下内容,就可以轻松随机地完成几乎所有您想做的事情。随机数,数组中的随机值,jquery元素中的随机数,对象中的随机属性,甚至可以防止重复,如我在此处所示。
var sequence = randoSequence(videoLinks);