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

如何在Vue中使用v-for实现从0开始每隔3个索引取值的循环

Vue.js v-for间隔取数实现方案

有两种常用实现方式,优先推荐第一种:

  • 方式一:计算属性预处理(推荐)
    把过滤逻辑放在计算属性中,和你写的原生JavaScript循环逻辑完全对齐,模板无多余逻辑,性能最优。
    计算属性代码:
computed: {
  targetData() {
    const res = []
    // sourceList 为你的原始数据数组,存在当前组件的data中
    for (let i = 0; i < this.sourceList.length; i += 3) {
      res.push(this.sourceList[i])
    }
    return res
  }
}

模板中直接遍历计算属性即可:

<template>
  <!-- 遍历过滤后的目标数据 -->
  <div v-for="(item, idx) in targetData" :key="idx">
    <!-- 此处写你的item渲染逻辑 -->
    {{ item }}
  </div>
</template>
  • 方式二:模板内直接加索引判断
    如果不想提前处理数据,可以在遍历原数组时通过v-if过滤符合要求的索引,索引对3取模等于0就是你要的目标索引:
<template>
  <div
    v-for="(item, idx) in sourceList"
    v-if="idx % 3 === 0"
    :key="idx"
  >
    {{ item }}
  </div>
</template>

注意:该方式不适合数据量过大的场景,v-for会先遍历所有元素再执行过滤判断,性能比计算属性预处理差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:45:01