请问v-for时,如何让相同proName、docName的合并

img

img

img


  <div v-for="(item, index) in datalist" :key="index">
          <el-descriptions
            :column="1"
            v-for="(tem, index) in item"
            :key="index"
          >
            <el-descriptions-item label="项目名称">
              {{ tem.proName }}
            </el-descriptions-item>
            <el-descriptions-item label="文件名称">
              {{ tem.docName }}
            </el-descriptions-item>
            <el-descriptions-item
              label-align="center"
              label="段落内容"
              v-for="(tem1, index) in tem.text"
              :key="index"
            >
              {{ tem1.text }}
            </el-descriptions-item>
            <el-descriptions-item label="操作">
              <el-tag size="small"
                ><el-button
                  type="text"
                  @click="insertContent(scope)"
                  size="mini"
                  >引用</el-button
                ></el-tag
              >
            </el-descriptions-item>
          </el-descriptions>
          <el-divider></el-divider>
        </div>

你这个应该在获取到数据,渲染之前去合并,而不是v-for的时候

原始数据需要进行数据分类,然后再渲染
例如

let list = [
            {
                name: '小明',
                age: 10,
                sex: 'male'
            },
            {
                name: '小花',
                age: 10,
                sex: 'female'
            },
            {
                name: '小张',
                age: 10,
                sex: 'male'
            },
            {
                name: '小华',
                age: 9,
                sex: 'male'
            },
            {
                name: '小丽',
                age: 10,
                sex: 'female'
            },
            {
                name: '小红',
                age: 9,
                sex: 'female'
            }
        ]
        let newObj = {}
        list.forEach((item, index) => {
            if (!newObj[item.sex + item.age]) {
                newObj[item.sex + item.age] = []
            }
            newObj[item.sex + item.age].push(item)
        })
        console.log(newObj)

img