避免重复数学随机

时间:2016-11-11 11:05:40

标签: javascript

我制作了一个幻灯片,其中显示了一个随机的口号,但是当我在控制台中检查时,一些标语将重复两次甚至三次。这正是我想要避免的,但我如何在下面的代码中实现它。



    setInterval("insertText()", 9000);

    function insertText() {
        var i = Math.floor(slogan.length * Math.random());
        var text = document.getElementById("textinsidebox");
        var sloganInfo = "<img src=" + slogan[i].image + " id='img_slogan'>" + "<br>" + slogan[i].text + "<br>" + slogan[i].person;
        text.innerHTML = sloganInfo;
    }
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

您可以使用函数的自有属性来存储最后一个值。

&#13;
&#13;
function insertText() {
    var i;
    do {
        i = Math.floor(array.length * Math.random());
    } while (i === insertText.i);
    console.log(insertText.i, i);
    insertText.i = i;
}

var array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
setInterval(insertText, 500);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;
&#13;
&#13;