vue数组根据某些条件进行二次切割

server/2024/10/18 16:50:47/

原本的一个一维数组首先

1.根据depnm和bed的不同会分成不同的数组

2.在条件1的基础上分割出来的数组如果存在里面有isBgn==1的会进行二次分割

比如原数组是[{depnm:1,bed:2,isBgn:0},{}……]

根据条件一会组成一个二维数组得到

[

[①depnm值一致的一个一维数组],

[②bed值一致的一个一维数组],

[③另一个depnm值一致的一个一维数组],//即存在有多种depnm的情况

]

根据条件2在1的基础上二次切割会得到

[

[下标为0~isBgn==1的下标的值的前一个值],//①depnm值一致的一个一维数组

[下标为isBgn==1的下标的值~最后一值],//①depnm值一致的一个一维数组

[②bed值一致的一个一维数组],

[③另一个depnm值一致的一个一维数组],

]

比如①depnm值一致的一个一维数组有10个值,这个数组里面第三个值是isBgn==1,那这个数组会分成两个数组,第一个数组是0-2,第二个数组是3-10

  let obj = {}; // 初始化一个空对象来存储分组后的数据res.data.data.forEach((item) => {// 使用depnm和bed两个字段来构建一个唯一的keyconst key = `${item['depnm']}-${item['bed']}`;// 如果这个key在obj中已经存在,则把当前item添加到对应的数组中// 如果不存在,则创建一个新的数组,并把当前item添加到这个数组中obj[key] ? obj[key].push(item) : (obj[key] = [item]);});// 将obj的values(即分组后的数组)转换为数组,并赋值给this.info// this.info = Object.values(obj);this.info=[]Object.values(obj).forEach(v=>{let indexArr=[0]let result=[]v.forEach((item,index)=>{if(item.isBgn==1&&index!==0){indexArr.push(index)}})indexArr.push(v.length)// 遍历下标数组,根据相邻下标切割原数组for (let i = 0; i < indexArr.length - 1; i++) {let start = indexArr[i];let end = indexArr[i + 1];result.push(v.slice(start, end));}this.info.push(...result)})

res.data.data是最原始的一维数组

Object.values(obj)是条件1得出的二维数组

this.info就是最后条件2得出的二维数组


http://www.ppmy.cn/server/128147.html

相关文章

为Floorp浏览器添加搜索引擎及搜索栏相关设置. 2024-10-05

Floorp浏览器开源项目地址: https://github.com/floorp-Projects/floorp/ 1.第一步 为Floorp浏览器添加搜索栏 (1.工具栏空白处 次键选择 定制工具栏 (2. 把 搜索框 拖动至工具栏 2.添加搜索引擎 以添加 搜狗搜索 为例 (1.访问 搜索引擎网址 搜狗搜索引擎 - 上网从搜狗开始 (2…

【优选算法】(第八篇)

目录 串联所有单词的⼦串&#xff08;hard&#xff09; 题目解析 讲解算法原理 编写代码 最⼩覆盖⼦串&#xff08;hard&#xff09; 题目解析 讲解算法原理 编写代码 串联所有单词的⼦串&#xff08;hard&#xff09; 题目解析 1.题目链接&#xff1a;. - 力扣&#…

吊打ChatGPT4o!大学生如何用上原版O1辅助论文写作(附论文教程)

目录 1、用ChatGPT生成论文选题2、用ChatGPT生成论文框架3、用ChatGPT进行文献整理4、用ChatGPT进行论文润色5、用ChatGPT进行问题求解6、用ChatGPT进行思路创新7、用ChatGPT进行论文翻译8、如何直接使用ChatGPT4o、o1、OpenAI Canvas 9、OpenAI Canvas增强了啥&#xff1f;10、…

How to install JetBrains ToolBox in Ubuntu 22.04 LTS?

JetBrains Toolbox 的安装教程 在 2024 年 9 月 28 日&#xff0c;我想和大家分享一下 JetBrains Toolbox 的安装步骤&#xff0c;让你轻松开启高效的开发之旅。 一、准备工作 首先&#xff0c;确保你已经准备好了要安装的 JetBrains Toolbox 文件&#xff0c;可以从官方网站…

sql-server【bcp工具】

目录 1.查看bcp是否可用 2.bcp 命令的基本语法 3.数据导出 4.数据导入 bcp&#xff08;Bulk Copy Program&#xff09;是 SQL Server 提供的一个命令行工具&#xff0c;用于在 SQL Server 实例与用户指定格式的数据文件之间批量复制表或视图数据。bcp 工具非常适合进行大量…

【Iceberg分析】调研Iceberg中表的原地演变

调研Iceberg中表的原地演变 文章目录 调研Iceberg中表的原地演变原生非分区表文件关系图表的原地演变之表schema演变新增字段new_column文件关系变化图为新增字段写入数据文件关系变化图删除新增字段文件关系变化图新增字段new_column2文件关系变化图删除数据文件关系变化图 原…

精选算法入门——day2

精选算法入门——day2 题目一题干解题思路一解题思路二解题思路三思路三代码 题目二题干解题思路代码 题目三题干解题思路一代码解题思路二代码解题思路三代码 题目四题干解题思路代码 题目一 题干 数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。…

Vite多环境配置与打包:

环境变量必须以VITE开头 1.VITE_BASE_API&#xff1a; 在开发环境中设置为 /dev-api&#xff0c;这是一个本地 mock 地址&#xff0c;通常用于模拟后端接口。 2.VITE_ENABLE_ERUDA&#xff1a; 设置为 "true"&#xff0c;表示启用调试工具&#xff0c;通常是为了…