用 _.each() 函数替换 JavaScript for 循环

Replace JavaScript for loop with _.each() function

我正在尝试用 underscore.js each() 函数替换 JavaScript For 循环。

for (var x = 0; x < count; x++) {
  slider[x].setAttribute('id', arguments[x]);
  sliderPagination[x].setAttribute('id', arguments[x]+'Pagination');

  // Initialise swiper
  var slider = new Slider('#'+arguments[x], {
    pagination: '#'+arguments[x]+'Pagination',
    loop:true,
    grabCursor: true,
    paginationClickable: true
  })
}

我刚开始使用下划线,所以不太确定最好的方法。为此使用 _.each() 函数时是否需要索引迭代?

更新:

// Function to initialize multiple instances of slider plugin
function loadSliders(values) {

  var sliders = document.getElementsByClassName("swiper-container"),
      slidersPaginations = document.getElementsByClassName("swiper-pagination"),
      count = Math.min(sliders.length, arguments.length),
      i = 0;

  _.each(sliders, function(sliders, index) {
    var argumentsVariable = values[index];

    sliders.setAttribute('id', argumentsVariable);
    slidersPaginations[index].setAttribute('id', argumentsVariable+'Pagination');

    // Initialise swiper
    var slider = new Swiper('#'+argumentsVariable, {
      pagination: '#'+argumentsVariable+'Pagination',
      loop:true,
      grabCursor: true,
      paginationClickable: true
    })

  });

}

我在这里假设您有 3 个数组: - sliders - sliderPaginations - arguments

那么,你可以这样做:

_.each(sliders, function(slider, index) {
  var argumentsVariable = arguments[index];
  slider.setAttribute('id', argumentsVariable);
  sliderPaginations[index].setAttribute('id', argumentsVariable+'Pagination');

  // Initialise swiper
  var slider = new Slider('#'+argumentsVariable, {
    pagination: '#'+argumentsVariable+'Pagination',
    loop:true,
    grabCursor: true,
    paginationClickable: true
  })
}

请注意,您可以使用为每个数组定义的 EcmaScript5 forEach 方法:

sliders.forEach(function(slider, index) {
  var argumentsVariable = arguments[index];
  slider.setAttribute('id', argumentsVariable);
  sliderPagination.setAttribute('id', argumentsVariable+'Pagination');

  // Initialise swiper
  var slider = new Slider('#'+argumentsVariable, {
    pagination: '#'+argumentsVariable+'Pagination',
    loop:true,
    grabCursor: true,
    paginationClickable: true
  })
}