You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用循环让map函数按指定规则渲染卡片,间隔固定位置变更样式

你不需要额外自定义循环实现,map方法本身支持传入第二个参数获取当前遍历项的索引,直接通过索引判断对应排版规则即可。

判断逻辑说明:

  • 数组索引从0开始计数,对应你要求的规则:第1张卡片对应索引0,第6张对应索引5,这两个位置走横向拉长样式;第2-5张对应索引1-4,走纵向拉长样式
  • 如果后端返回数据不止6条,需要按这个规则循环排版的话,用索引对6取模判断即可:index % 6 === 0 || index % 6 === 5 时应用横向样式,其余情况应用纵向样式

修改后的参考代码:

<div className="container">
  <div className="row">
    {posts && posts.map((item, index) => {
      // 判断当前项是否为横向卡片
      const isHorizontal = index % 6 === 0 || index % 6 === 5;
      return (
        // 注意添加唯一key属性,优先用后端返回的唯一id
        <div key={item.id} className="col-md-6 col-sm-6">
          <div className="row">
            {isHorizontal ? (
              // 横向布局:先通栏大图,再两个小图
              <>
                <div className="col-md-12">
                  <img src={item.coverUrl} alt={item.title} />
                </div>
                <div className="row">
                  <div className="col-md-6 col-sm-6">
                    <img
                      style={{ minHeight: "280px", objectFit: "cover" }}
                      src={item.subImg1Url}
                      alt=""
                    />
                  </div>
                  <div className="col-md-6 col-sm-6">
                    <img
                      style={{ minHeight: "280px", objectFit: "cover" }}
                      src={item.subImg2Url}
                      alt=""
                    />
                  </div>
                </div>
              </>
            ) : (
              // 纵向布局:先两个小图,再通栏大图
              <>
                <div className="row">
                  <div className="col-md-6 col-sm-6">
                    <img
                      style={{ minHeight: "280px", objectFit: "cover" }}
                      src={item.subImg1Url}
                      alt=""
                    />
                  </div>
                  <div className="col-md-6 col-sm-6">
                    <img
                      style={{ minHeight: "280px", objectFit: "cover" }}
                      src={item.subImg2Url}
                      alt=""
                    />
                  </div>
                </div>
                <div className="col-md-12">
                  <img src={item.coverUrl} alt={item.title} />
                </div>
              </>
            )}
          </div>
        </div>
      )
    })}
  </div>
</div>

内容的提问来源于stack exchange,提问作者Jay Modi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:45:02