我有一个随机播放列表的脚本。但是我想要的是它洗牌并选择了4个项目。像这样:
星期六
星期二
星期一
星期五
我怎样才能做到这一点?
var ul = document.querySelector('#lister');
for (var i = ul.children.length; i >= 0; i--) {
ul.appendChild(ul.children[Math.random() * i | 0]);
}
<ul id="lister">
<li>Sunday</li>
<li>Monday</li>
<li>Tuesday</li>
<li>Wednesday</li>
<li>Thursday</li>
<li>Friday</li>
<li>Saturday</li>
</ul>
最佳答案
为什么不只使用条件逻辑?如果您已经拥有最大数量,则只需删除该节点而不是附加它。
var ul = document.querySelector('#lister');
var max = 4;
for (var i = ul.children.length; i >= 0; i--) {
if(ul.children.length - i > max) {
ul.removeChild(ul.children[i]);
} else {
ul.appendChild(ul.children[Math.random() * i | 0]);
}
}
<ul id="lister">
<li>Sunday</li>
<li>Monday</li>
<li>Tuesday</li>
<li>Wednesday</li>
<li>Thursday</li>
<li>Friday</li>
<li>Saturday</li>
</ul>
关于javascript - 显示列表项的随机选择并随机播放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47514557/