Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将随机结果更改为序列_Javascript_Jquery - Fatal编程技术网

Javascript 将随机结果更改为序列

Javascript 将随机结果更改为序列,javascript,jquery,Javascript,Jquery,如何将此随机结果更改为从较低数字开始的序列?我是JS新手,尝试过修改,但没有解决方案。我希望任何人都能帮忙 function randomFeed() { var $el = $("#randomFeed"); var random = new Array('news1','news2','news3','news4','news5','news6'); var randomIndex = Math.floor(Math.random() * 4); var new

如何将此随机结果更改为从较低数字开始的序列?我是JS新手,尝试过修改,但没有解决方案。我希望任何人都能帮忙

function randomFeed() {
    var $el = $("#randomFeed");

 var random = new Array('news1','news2','news3','news4','news5','news6');

    var randomIndex = Math.floor(Math.random() * 4);
    var newElement = random[randomIndex];

        $el.prepend("<tr><td>" + newElement + "</td></tr>").find("tr").first().hide();
        $el.find("tr").first().fadeIn();
        if ($el.find("tbody tr").length > 20) {
            $el.find("tbody tr").last().fadeOut(400, function() {
                $(this).remove();
            });
        }

    slimScrollUpdate($el.parents(".scrollable"));

    setTimeout(function() {
        randomFeed();
    }, 3000);
} 
试试这个:

news = new Array('news1','news2','news3','news4','news5','news6')

// option 1
news.sort(function() {
      return .5 - Math.random();
    });
//news = news1,news2,news3,news6,news4,news5

//option 2
len = news.length,
randomNumber = Math.floor((Math.random() * len) + 0);
// randomNumber = 3

part = news.slice(randomNumber, len)
// part = arrnews6,news4,news5

请更准确地说明你的期望/目标是什么

所以你需要连续的新闻幻灯片而不是随机的?请尝试使用全局feedIndex变量


顺便说一句,这个代码在它的状态是非常糟糕的。它每次都会更改DOM以显示新的提要元素。最好渲染显示为“无”的所有元素,并仅切换实际元素的可见性。这是一种常见的模式

去掉随机内容,只需将randomIndex设置为递增的计数器变量即可。e、 g.var notsorandomIndex=0;然后是notsorandomIndex++。你的目标是什么?你们所说的“如何将这个随机结果变成一个从较小的数字开始的序列”是什么意思?你们能写更多的脚本把它放在哪里吗。实际上,我对JS的了解较少。我试过你的,但还是失败了。我必须向你学习更多。通过尝试你的,我得到了答案。
var feedIndex = 0;

function randomFeed() {
    var $el = $("#randomFeed"),
        news = new Array('news1','news2','news3','news4','news5','news6'),
        newElement = news[feedIndex++ % news.length];

    //console.log(newElement);

    $el.prepend("<tr><td>" + newElement + "</td></tr>").find("tr").first().hide();
    $el.find("tr").first().fadeIn();
    if ($el.find("tbody tr").length > 20) {
        $el.find("tbody tr").last().fadeOut(400, function() {
            $(this).remove();
        });
    }

    slimScrollUpdate($el.parents(".scrollable"));

    setTimeout(function() {
        randomFeed();
    }, 3000);
}