我一直在到处寻找解决方案,但我似乎无法在任何地方找到答案!也许我只是错误地表述了我的问题,但是如果索引大于数组长度,我如何循环回到数组的开头?请参阅下面我的代码的示例:
// Array of colours
let colours = ["#FFBE36", "#FF6447", "#77FF47", "#D547FF", "#FF9E47", "#47DBFF", "#FF4770"];
// For each pack, a background colour from the array above is assigned.
// However, these are fetched from a database so could be more than the
// length of the array
var packs = document.getElementsByClassName("pack-item");
for (var i = 0, len = packs.length; i < len; i++) {
// Here if i is larger than colours.length, loop back to start of
// colours array, e.g colours[8] = "#FFBE36"
packs[i].style.backgroundColor = colours[i];
}
我希望这是有道理的?如果您希望我以不同的措辞/更详细地解释,请告诉我!
谢谢 :)
您可以使用模运算符 (%) 来完成此操作,如下所示。这将使计数器保持正确的长度并且颜色保持有序。
// Array of colours
let colours = ["#FFBE36", "#FF6447", "#77FF47", "#D547FF", "#FF9E47", "#47DBFF", "#FF4770"];
// For each pack, a background colour from the array above is assigned.
// However, these are fetched from a database so could be more than the
// length of the array
var packs = document.getElementsByClassName("pack-item");
for (var i = 0, len = packs.length; i < len; i++) {
// Here if i is larger than colours.length, loop back to start of
// colours array
packs[i].style.backgroundColor = colours[i % colours.length];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)