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

Vue中如何遍历分组对象数据并输出所有条目对应的类型与标题

问题原因

你当前的代码仅遍历了最外层的分组(专辑、播放列表两个大分类),且强制取了每个分组数组的第0项item[0],所以只能拿到每个分类的第一条数据,需要再加一层嵌套遍历,循环每个分类下的所有子项。

另外你贴的接口返回数据存在语法错误,PLAYLISTS下第二个对象缺少左大括号,修正后合法数据结构如下:

const items = {
  "ALBUMS": [
    {
      "ID": "1",
      "TITLE": "'THE BEST OF"
    },
    {
      "ID": "2",
      "TITLE": "MADE IN ENGLAND"
    }
  ],
  "PLAYLISTS": [
    {
      "ID": "5",
      "TITLE": "SUNSET SESSIONS"
    },
    {
      "ID": "2",
      "TITLE": "POOLSIDE SESSIONS"
    }
  ]
}
正确实现代码

用两层v-for嵌套遍历即可,外层遍历分组,内层遍历每个分组下的所有条目:

<!-- 外层遍历分组:groupName是分组名,groupList是分组对应的数组 -->
<template v-for="(groupList, groupName) in items" :key="groupName">
  <!-- 内层遍历分组下的所有条目 -->
  <div v-for="item in groupList" :key="item.ID">
    <!-- 格式化分类名输出 -->
    <h1 class="category">{{ groupName === 'ALBUMS' ? 'Album' : 'Playlist' }}</h1>
    <h1 class="title">{{ item.TITLE }}</h1>
  </div>
</template>
注意事项
  • 接口返回的字段是大写的ID和TITLE,不要写成小写的id/title,否则会读取不到值
  • 外层用<template>标签包裹不会生成额外的DOM节点,如果你需要给分组加外层容器可以替换为<div>
  • 你贴的预期输出里最后两条都是Sunset Sessions属于笔误,上述代码会正确输出两个播放列表的对应标题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:18:01