20240529每日前端--------vue数组对象包含数组,判断子数组是否有重复对象

数组格式如下:

"industrySceneList": [{"mainIndustry": 1,"mainIndustryName": "林草","sceneList": [{"subIndustry": 1,"subIndustryName": "森林防火"}]},{"mainIndustry": 2,"mainIndustryName": "国土","sceneList": [{"subIndustry": 141,"subIndustryName": "其它-1"},{"subIndustry": 11,"subIndustryName": "耕地保护"},{"subIndustry": 12,"subIndustryName": "矿山保护"}]},{"mainIndustry": 12,"mainIndustryName": "其它-2","sceneList": [{"subIndustry": 71,"subIndustryName": "其它-3"}]}
],

第一种办法:通过map计数来判定:

onSubIndustryChange(industrySceneList) {let validIndust = true;let subIndustry = "";// 创建一个Map来存储subIndustry及其出现次数const subIndustryCounts = new Map();// 遍历industrySceneListindustrySceneList.forEach(industryScene => {// 遍历当前场景列表中的sceneListindustryScene.sceneList.forEach(scene => {// 获取当前subIndustryName的计数,如果不存在则默认为0const count = subIndustryCounts.get(scene.subIndustryName) || 0;// 将计数加1subIndustryCounts.set(scene.subIndustryName, count + 1);});});// 筛选出计数大于1的subIndustry,即重复的subIndustryconst duplicates = Array.from(subIndustryCounts).filter(([subIndustry, count]) => count > 1).map(([subIndustry, _]) => subIndustry);//数组转String用逗号拼接subIndustry = duplicates.join(',');if (duplicates.length > 0) {validIndust = false;this.$message({message: '当前存在' +subIndustry+'重复,请检查后重试',type: 'error'});}return validIndust;
},

第二种办法:通过ES6 set数据类型

hasDuplicateIds(value) {console.log(value);let dupValid = true;const nonMinusOneItems = this.industryScenario.filter(item => item.mainIndustry == value);const uniqueNonMinusOneIds = new Set(nonMinusOneItems.map(item => item.mainIndustry));if(nonMinusOneItems.length !== uniqueNonMinusOneIds.size){this.$message({message: '行业不能重复',type: 'error'});dupValid = false;}return dupValid;
},

---------- 兄弟们更喜欢哪一种呢~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/846643.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版6(附带项目源码)

最终效果 系列导航 文章目录 最终效果系列导航前言方法一、使用excel配置表excel转txt文本读取txt数据按配置信息生成僵尸 方法二、使用ScriptableObject 配置关卡信息源码结束语 前言 本节主要是推荐两种实现配置关卡信息,并按表生成僵尸和关卡波次 方法一、使用…

PCIe总线-事物层之TLP路由介绍(七)

1.概述 下图是一个PCIe总线系统示意图。此时RC发出一个TLP,经过Switch访问EP,TLP的路径为红色箭头所示。首先TLP从RC的下行OUT端口发出,Switch的上行IN端口接收到该TLP后,根据其路由信息,将其转发到Switch的下行OUT端…

领域驱动设计(DDD)学习笔记之:基础理论与概念

DDD基础概念 领域、子域和限界上下文 在领域驱动设计(DDD)中,领域、子域和限界上下文是基础的概念,它们帮助我们理解和组织复杂的业务系统。以下是对这些概念的详细讲解: 1. 领域(Domain) 定…

AI学习指南机器学习篇-线性回归在python中的实现sklearn

AI学习指南机器学习篇-线性回归在python中的实现sklearn 在机器学习领域中,线性回归是最为基础和常见的模型之一。它被广泛应用于预测和建模等领域,是我们学习机器学习的不二选择。 本篇博客将详细介绍如何使用Python中的sklearn库来实现一元和多元线性…

Google力作 | Infini-attention无限长序列处理Transformer

更多文章,请关注微信公众号:NLP分享汇 原文链接:Google力作 | Infini-attention无限长序列处理Transformerhttps://mp.weixin.qq.com/s?__bizMzU1ODk1NDUzMw&mid2247485000&idx1&sne44a7256bcb178df0d2cc9b33c6882a1&chksm…

MySQL 连接池在 Python 中的深度探索与实践

MySQL 连接池在 Python 中的深度探索与实践 在 Python 中,高效地管理数据库连接是一个关键任务,尤其是在处理大量并发请求时。MySQL 连接池作为优化数据库连接管理的工具,显得尤为重要。本文将从四个方面、五个方面、六个方面和七个方面&…

Linux的shell脚本:如何用bash脚本从mysql数据库中直接读取用户数据,并直接显示出来(一条命令查看数据库信息)

目录 一、要求 二、脚本和解释 三、脚本执行 1、 脚本保存为sh文件 2、给脚本赋予执行权限 3、运行脚本 四、Bash脚本中,可以使用哪些MySQL语句 1、连接到MySQL数据库 2、执行SQL语句 3、查询并显示结果 4、脚本中执行SQL文件 5、数据库操作 …

conda源不能用了的问题

conda旧没用了&#xff0c;不知道什么原因&#xff0c;安装源出问题&#xff0c;报如下错&#xff1a; Loading channels: failedUnavailableInvalidChannel: HTTP 404 NOT FOUND for channel anaconda/pkgs/main <https://mirrors.aliyun.com/anaconda/pkgs/main>The c…

Vue.js 动态组件与异步组件

title: Vue.js 动态组件与异步组件 date: 2024/6/2 下午9:08:50 updated: 2024/6/2 下午9:08:50 categories: 前端开发 tags:Vue概览动态组件异步加载性能提升路由管理状态控制工具生态 第1章 Vue.js 简介 1.1 Vue.js 概述 Vue.js 是一个渐进式的JavaScript框架&#xff0c;…

6.2数据库作业

文章目录 11.11.21.3 22.12.2 33.13.23.3 4 1 1.1 丢失更新(lost update)异常是指如果事务Tj读取了一个数据项&#xff0c;然后另一个事务Ti写该数据项(可能基于先前的读取)&#xff0c;然后Tj写该数据项。于是Ti做的更新丢失了&#xff0c;因为Tj的更新覆盖了Ti写入的值。 给…

JAVA基础(4) 面向对象编程1

目录 一、面向对象编程概述 1.面向对象的程序设计思想 二、JAVA语言的基本元素&#xff1a;类和对象 1.类为何物&#xff1f; 2.对象为何物&#xff1f; 3.类的成员 4.如何完成面向对象&#xff1f; 三、类的成员——变量 1.如何声明变量 2.成员变量与局部变量 四、…

大模型时代的向量数据库

向量数据库专门用于存储和处理向量数据。它的能够高效地存储和检索向量数据&#xff0c;使开发者能够进行高级的相似性搜索和分析。 在大模型时代&#xff0c;文本、图像、音频和其他非结构化数据&#xff0c;通常被嵌入到一定维度的向量空间&#xff0c;使用向量数据库能够高效…

《论文阅读》通过顺序不敏感的表示正则化实现稳健的个性化对话生成 ACL 2023

《论文阅读》通过顺序不敏感的表示正则化实现稳健的个性化对话生成 ACL 2023 前言 相关个性化生成论文推荐简介问题定义方法损失函数实验结果 前言 亲身阅读感受分享&#xff0c;细节画图解释&#xff0c;再也不用担心看不懂论文啦~ 无抄袭&#xff0c;无复制&#xff0c;纯手…

中间件模版引擎

文章目录 中间件1.自定义中间件1&#xff09;全局2&#xff09;局部中间件 2.内置中间件(静态资源目录&#xff09; Art-template1.模板语法1&#xff09;输出2&#xff09;原文输出3&#xff09;条件判断4&#xff09;循环5&#xff09;子模版6&#xff09;模版继承7&#xff…

vue-Dialog 自定义title样式

展示结果 vue代码 <el-dialog :title"title" :visible.sync"classifyOpen" width"500px" :showClose"false" class"aboutDialog"> <el-form :model"classifyForm" :rules"classifyRules">…

【OJ】C++ | 二叉树进阶 · 合集(2)

摘要&#xff1a;根据二叉树创建字符串、二叉树的最近公共祖先、二叉树的层序遍历 前言&#xff1a;承接上文&#xff0c;本文继续提供二叉树进阶有关题目的解法。如有错误&#xff0c;烦请指正。 目录 1. 根据二叉树创建字符串 题解及代码 2. 二叉树的最近公共祖先 题解及…

Java | Leetcode Java题解之第121题买卖股票的最佳时机

题目&#xff1a; 题解&#xff1a; public class Solution {public int maxProfit(int prices[]) {int minprice Integer.MAX_VALUE;int maxprofit 0;for (int i 0; i < prices.length; i) {if (prices[i] < minprice) {minprice prices[i];} else if (prices[i] -…

用幻灯片讲解C++中的C语言风格数组

用幻灯片讲解C中的C语言风格数组 1.栈内存中的C风格数组 糟糕的可用性&#xff0c;但你将在遗留代码中看到它们。相同类型的对象块。大小必须是常量表达式。第一个元素的索引为0&#xff0c;即数组索引从0开始。 注意一下数组的初始化&#xff0c;使用了C11标准之后的统一初始…

【2024年5月备考新增】】 考前篇(26)《必备资料(9) - 论文串讲-范围管理》

过程定义输入工具技术输出实际应用规划范 围管理编制范围管理计划: 书面描述将如何定 义、制定确认项目 范围的过程,其主 要作用是在整个项 目中对如何管理范 围提供指南和方向1、项目章程2、项目管理计划.质量管理计划 3、事业环境因素 .项目生命周期描4、组织过程资产 述.开…

react ant design Upload 多文件上传 beforeUpload 会调用很多次,怎么只获取一次

当使用Ant Design的Upload组件实现多文件上传时&#xff0c;beforeUploadHandler函数会被每个选中的文件调用一次。如果您只想获取一次选中的文件而不是每个文件都触发一次处理逻辑&#xff0c;可以采取以下方法&#xff1a; 使用 useRef 钩子保存文件列表&#xff1a;可以使用…