Vue3中使用 filter 方法通过 id 删除数组中的指定对象

Vue中使用 filter 方法通过 id 删除数组中的指定对象


一、前言

在 Vue3 中,我们经常需要处理数据并进行相应操作,比如删除数组中的特定对象。在这篇文章中,我们将学习如何使用 filter 方法和响应式变量来实现这一目标。

首先,让我们看一下如何利用 ref 来创建响应式数组,以及如何使用 filter 方法来删除特定 id 对应的对象。以下是一个简单的示例:

1、示例

import { ref } from 'vue';

// 创建一个包含项目列表的响应式数组
const items = ref([
  { id: 1, name: 'Item 1' },
  { id: 2, name: 'Item 2' },
  { id: 3, name: 'Item 3' }
]);

// 定义要删除的对象的 id
const targetId = 2;

// 使用 filter 方法删除特定 id 对应的对象
items.value = items.value.filter(item => item.id !== targetId);

在上述示例中,我们使用了 ref 来创建一个响应式数组 items,然后通过 filter 方法删除了 id 为 targetId 的对象。

接下来,让我们结合 Vue 3 的模板语法来展示最终的效果:

2、案例

<template>
  <div>
    <ul>
      <li v-for="item in items" :key="item.id">
        {{ item.name }}
      </li>
    </ul>
  </div>
</template>

<script setup>
import { ref } from 'vue';

// 创建一个包含项目列表的响应式数组
const items = ref([
  { id: 1, name: 'Item 1' },
  { id: 2, name: 'Item 2' },
  { id: 3, name: 'Item 3' }
]);

// 定义要删除的对象的 id
const targetId = 2;

// 使用 filter 方法删除特定 id 对应的对象
items.value = items.value.filter(item => item.id !== targetId);
</script>

以上代码演示了如何在 Vue 3 中使用 filter 方法通过 id 删除数组中的指定对象,并在模板中展示最终的结果。

希望本文能够帮助您更好地理解如何在 Vue 3 中使用 filter 方法来处理数组数据。如果您有任何疑问或需要进一步帮助,请随时告诉我。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Vue对数组对象进行去重有多种方法。一种简单的方法使用Set集合来去重,但是对于数组对象来说,这种方法并不适用。可以采取以下间接的方法来实现数组对象的去重。 一种方法使用Map来进行去重。首先创建一个空的Map对象,然后使用filter方法对数组进行筛选,只保留Map没有出现过的元素,并将新的元素添加到Map。最后返回筛选后的数组即可。例如: ``` elimination(arr) { const res = new Map(); return arr.filter((item) => !res.has(item.id) && res.set(item.id, 1)); }, ``` 在Vue使用方法可以这样调用: ``` this.arr = this.elimination(this.arr); ``` 另一种方法是直接在Vue方法使用filter和Map来进行去重。例如: ``` quChong() { let arr = [ { id: 1, name: '111' }, { id: 1, name: '111' }, { id: 2, name: '222' }, { id: 3, name: '333' } ]; let arr1 = this.unique(arr); console.log(arr1); }, unique(arr) { const res = new Map(); return arr.filter((item) => !res.has(item.id) && res.set(item.id, 1)); }, ``` 以上代码,通过调用`unique`方法实现了数组对象的去重,并将结果打印输出。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [数组对象去重(vue)](https://blog.csdn.net/m0_58259728/article/details/120197737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue数组去重,数组对象去重](https://blog.csdn.net/snowflak/article/details/127653450)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

和烨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值