可以使用一个对象来判断数组中是否有重复值,如果该对象中已经存在该值,则跳过该元素的输出。具体实现如下:

<template>
  <div>
    <div v-for='(item, index) in cp' :key='index'>
      <div v-if='!exist[item.name]'>
        <h3>{{ item.name }}</h3>
        <p>{{ item.jj }}</p>
        <img :src='item.titlepic' alt='' />
      </div>
    </div>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        cp: [
          {
            name: '拉网铝单板',
            url: '#',
            jj: '该产品是室内天花吊顶的个性化产品,工艺先进的拉网技术,造就了细腻的网格。搭配下来,会营造出视觉通透的效果,并且能在一定程度上降低噪音污染,金属铝拉网以优质铝合金为主要材料,按客户提供设计尺寸、形状和构造形式经过工',
            titlepic: '/d/file/p/2023/05-30/d7bf16ab5659c851eb93c87a2274feac.jpg',
          },
          {
            name: '浮雕铝单板',
            url: '#',
            jj: '铝单板雕刻花格,立体铝单板雕刻花格已不再是一种简单的装修材料,而是一种精美的艺术装饰品,浮雕铝单板成为代表富贵身价,豪华气派的风景线!采用技术研制开发的铜艺整体雕花护栏。铝单板雕刻护栏、多种系列产品,以它独',
            titlepic: '/d/file/p/2023/05-30/a4c020b60c47669ae664f57e40726e70.jpg',
          },
        ],
        exist: {},
      };
    },
    mounted() {
      for (let i = 0; i < this.cp.length; i++) {
        if (this.exist[this.cp[i].name]) {
          continue;
        }
        this.exist[this.cp[i].name] = true;
      }
    },
  };
</script>

在上面的代码中,我们首先定义了一个名为 `exist` 的对象,用来存储已经存在的元素名称。在 `mounted` 生命周期中,遍历数组 `cp` 中的每个元素,判断该元素的名称是否已经存在于 `exist` 对象中。如果存在,则跳过该元素的输出,否则将该元素的名称存入 `exist` 对象中,并输出该元素的相关信息。这样,就可以通过一个 `v-for` 和一个 `v-if` 判断数组中是否有重复值,重复值的只输出一次了。

Vue.js 如何使用 v-for 和 v-if 过滤数组重复值并只输出一次

原文地址: https://www.cveoy.top/t/topic/omIX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录