如何在数组被释放后使其重复

how to make an array repeat after it has been exausted

本文关键字:释放 数组      更新时间:2023-09-26

我有这个数组(用于背景div 颜色),我让它工作了一次,但仅此而已......任何帮助将不胜感激。

$(function(){
// console.log('Hello, I am working');
var App = {
init: function(){
  // var Colors = ['red', 'blue', 'yellow', 'green', 'pink', 'orange'];
  // console.log('Hello, I am working');
  App.colorLinks();
},
colorLinks: function(){
  // $('body').find('a').addClass('love');
  // console.log(this.parent)
  var Colors = ['red', 'blue', 'yellow', 'green', 'pink', 'orange'];
  for (var i = 0; i < Colors.length; i++) {
    var AnchorList = $('a').length;
    for (var i = 0; i < AnchorList; i++) {
      $('body').find("a:eq("+i+")").addClass(Colors[i]);
    };
    // $('body').find('a').addClass(Colors[i]);
  };
  // console.log($('a').length);
}
};
App.init();
});

两种常见的方法是使用余数运算符 % 或简单的 if 检查:

 var links = Array.prototype.slice.call(document.links,0);
 links.forEach(function(link,i){
      link.classList.add(Colors[i % Colors.length])); // using remainder
 });

使用 if 检查:

var j = 0;
for(var i =0; i < document.links.length; i++, j++){
    document.links[i].classList.add(colors[j]);
    if(j === Colors.length) j = 0;
}
var Colors = ['red', 'blue', 'yellow', 'green', 'pink', 'orange'];
$.each('a', function(i,v){
    $(this).addClass(Colors[i % Colors.length]);
});

请记住,这将循环,但它可能与预期的开始不完全匹配,因为长度不是基于 0 索引的,但我会的。另外,使用模数将返回余数。最后,你会得到一个循环的颜色数组,所以也许这些细节都不重要。