【发布时间】:2014-11-30 21:53:25
【问题描述】:
我有一个循环,它生成一个介于 0 和 5 之间的随机数并在数组中获取颜色。
第一种颜色总是黄色,我不知道为什么。
var hexColors = new Array("#000000", "#FFFFFF", "#FF0000", "#0000FF", "#00FF00", "#FFFF00");
var nameColors = new Array("White", "Red", "Blue", "Black", "Green", "Yellow");
for (var i = 5; i >= 0; i--) {
var hexColor = randomNum(i);
var nameColor = randomNum(i);
$('td:eq(' + i + ')').css("color", hexColors[hexColor]);
$('td:eq(' + i + ')').html(nameColors[nameColor]);
hexColors.splice($.inArray(hexColors[hexColor], hexColors), 1);
nameColors.splice($.inArray(nameColors[nameColor], nameColors), 1);
}
function randomNum(max) {
return Math.floor(Math.random() * max);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
</table>
我重构了循环,使它使用增量而不是 i-- 它可以工作,但我仍然想知道为什么它不能反过来工作。
【问题讨论】:
标签: javascript jquery for-loop random