我有一个随机播放列表的脚本。但是我想要的是它洗牌并选择了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/

10-11 23:23
查看更多