javascript - 获取数组中的每第 n 个项目

标签 javascript jquery

我有一组 HTML 元素。我正在检查数组中的前一个对象是否存在,如下所示:

var boxes = $('.box'); // creating the array

boxes.each(function(i){ // going through the array
    var prevBox = i>0?$(boxes[i-1]):false; // check whether a previous box exists
    if (prevBox) { } // do something
    else { } // do something else
});

这很好用。但我还需要检查数组中每四个对象(框)是否存在,或者更准确地说,是否存在当前对象之前三个对象的对象。

这行不通:

var prevBox = i>0?$(boxes[i-4]):false;

我相信使用 jQuery.grep() 并检查是否 (i % 4) == 0 可能是答案,但由于我对 Javascript 的了解有限,我不知道如何将它应用到我现在所拥有的。

有人可以帮忙吗?谢谢!

最佳答案

你不能只使用 for 循环吗?

for ( var i=0; i< boxes.length; i+=4 )
  {
    // do stuff with boxes[i]
  }

我不太擅长 JQuery,但在常规 JavaScript 中可以正常工作。

编辑:您已经稍微重新描述了问题,所以您想对每个项目采取行动,但在第四个项目上做一些具体的事情......

var previousTop;
for ( var i=0; i< boxes.length; i++ )
  {
    // do stuff with boxes[i]
    if ( ( (i+1) % 4 ) === 0 )
      {
          previousTop = boxes[i].position.top;
          // do stuff with the fourth item
      }
  }

在这里,范围更广的 previousTop 会在您执行任何您需要执行的其他操作之前每隔四个项目设置一次。然后,当您到达下一个第四个元素时,您的临时变量中就会有前一个元素的值,这听起来与您在下面对@patrick dw 的回答中寻找的内容相似。

关于javascript - 获取数组中的每第 n 个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4806968/

相关文章:

javascript - Angular : How do I get a column in a table with a dropdown in each cell and set different values in each of these dropdowns?

javascript - 如何在JQuery中打印数组元素?

javascript - 使用字符串

javascript - 在vue中使用环境变量

javascript - 我无法让 pagify.js 工作

javascript - 如何告诉谷歌地图 API 加载脚本在 React 组件中寻找回调?

javascript - jQuery 验证插件在两个提交按钮中工作

javascript - Jquery:设置页面加载超时

javascript - 如何使用 jQuery 更改文本区域中的行数

jquery - 最高元素后的尺寸列表