javascript - "Refill"一个数组

标签 javascript jquery

我有一个包含不同消息框的站点。这些盒子的头部应该总是有不同的随机颜色。为了防止彼此相邻的消息具有相同的颜色,我使用 splice 从数组 colors 中删除使用过的颜色。在某些时候,数组 colors 将是空的,这就是为什么剩余的框将没有颜色。我如何“重新填充”数组,以便每个元素都获得随机颜色?

这是我的页面:http://www.tdvk.de/ . 黄色是默认的头部颜色。

function selectColor() {
    var random = Math.floor(Math.random() * colors.length);
    return colors.splice( random, 1 )[0];
}

var colors = [ "rgb(199, 179, 78)", "rgb(127, 195, 133)", "rgb(102, 169, 162)", "rgb(132, 122, 224)" ];

var i = 0;

while ( i != colors.length ) {
    $( "tr" ).each(function(i) {
        var head = $( ".msgHead", this );
        head.css( "background-color", selectColor() );
        i++;
    });
}

if { i = colors.length ) {
    /* reset array and continue */
}

最佳答案

如何重新填充相同的颜色:

if ( i = colors.length ) {
    colors = [ "rgb(199, 179, 78)", "rgb(127, 195, 133)", "rgb(102, 169, 162)", "rgb(132, 122, 224)" ];
}

但是就像其他人所建议的那样,还有其他方法可以做到这一点,比如再次环绕到第一个元素而不是拼接,或者随机化其中的值。

关于javascript - "Refill"一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27507547/

相关文章:

javascript - 从数组中的对象获取 html 值

javascript - 如何更改 AJAX 响应 HTML,然后继续在 jQuery 中替换?

javascript - document.writeln() 破坏了我的 jQuery 部分更新。我该如何解决这个问题?

javascript - jQuery:在继续之前等待回调返回

javascript - 将递归函数转换为 JavaScript 中的迭代

javascript - 在特定时间段内暂停javascript线程

javascript - 如何搜索忽略重音字符的字符串(例如 ã = a)

javascript - 如何处理jquery创建动态引导卡?

javascript - 在 Javascript Document Ready 函数中使用隐藏输入值作为参数时出现问题

jquery全局动画持续时间