如何给数组跳过首尾14项后每第12个元素添加pagebreak类名
正确判断条件写法
你需要同时匹配三个判断逻辑:
- 排除前14项:索引
i大于等于14 - 排除后14项:索引
i小于数组长度减14 - 匹配剩余元素中的每第12项:计算元素在剩余序列中的相对位置,判断是否为12的倍数
如果「跳过」指前14、后14项不渲染,完整代码如下:
{orderData.map((el, i) => { // 前14、后14项直接跳过不渲染 if (i < 14 || i >= orderData.length - 14) return null; // 转换为剩余序列的从1开始的计数,匹配第12/24/48...位 const condition = (i - 13) % 12 === 0; return ( <tr className={`item ${condition ? "pagebreak" : ""}`}> // ... </tr> ) })}
如果「跳过」仅指不给前14、后14项加pagebreak类,仍然要渲染这些元素,直接把所有判断合并到condition即可:
let condition = i >= 14 && i < orderData.length - 14 && (i - 13) % 12 === 0;
这里的i - 13等价于i - 14 + 1,是把原数组索引转换为剩余序列的1开头计数,模12等于0就刚好对应剩余元素的第12、24、36...位。
内容的提问来源于stack exchange,提问作者Lhon Rafaat Mohammed
相关产品推荐
相关产品推荐

