首页 > 其他分享 >一维数组变二维数组

一维数组变二维数组

时间:2024-10-10 15:02:39浏览次数:1  
标签:pre return 数组 versionData 版本号 next item 二维 一维

  前言

当出现相同的参数 根据另一个特定参数来改变数据

改变原因  如下图 出现相同的名字但是版本号不同  下拉框数据是 版本号  改变版本号时候改变这一条数据 所以 一个大数组中分为每个对象  每个对象两个参数 第一个参数:  是选中的版本号 第二个参数是相同名字的数据组成一个对象 key是版本号 对应他的数据

 

 

 

一、上图的数据格式(改变后)

 

         selectedIndex 字段是选中版本号

                versionData  字段包含两个对象 字段名为版本号 对应版本号的数据

                4 和 8 是版本号 对应的对象是数据

二、实现步骤

1.改变数据格式

 代码如下 

dataset_version是版本号(根据这个来改变数据的), dataset_name为名字(数据中相同的)

     setData(response) { // 改变数组的格式 一维数组
            const data = JSON.parse(JSON.stringify(response));
            const resultArr = data.map(item => {
                return {
                    selectedIndex: item.dataset_version,
                    versionData: {
                        [item.dataset_version]: item
                    }
                };
            });
            return resultArr.reduce((pre, next) => {
                if (!pre.length) {
                    pre.push(next);
                    return pre;
                }
                const finderIndex = pre.findIndex(item => {
                    return Object.keys(item.versionData).some((itema) => {
                        return item.versionData[itema].dataset_name === next.versionData[next.selectedIndex].dataset_name;
                    });
                });
                if (~finderIndex) {
                    pre[finderIndex].versionData[next.selectedIndex] = next.versionData[next.selectedIndex];
                    return pre;
                }
                pre.push(next);
                return pre;
            }, []);
        },

 

 

2. 渲染数据

代码如下(示例):

 <el-select v-if="item.label==='数据集版本'" v-model="scope.row[item.prop]" @change="tabelRowchange(scope.row, scope.$index)">
                        <el-option v-for="(optItem,opIndex) in Object.keys(tableDatas[scope.$index].versionData)" :key="opIndex" :value="optItem" :label="optItem"/>
                    </el-select>

 

 


标签:pre,return,数组,versionData,版本号,next,item,二维,一维
From: https://www.cnblogs.com/qing1224/p/18456379

相关文章

  • 动态分配数组
    解决无法动态分配数组arr的问题:在C++中,不能直接使用动态大小的原生数组(例如intarr[n]),因为数组的大小必须在编译时确定。如果你传入的n是运行时决定的,编译器无法确定数组的大小。因此,下面的代码会在标准C++中产生错误:intn;//假设n是函数的参数intarr[n];//......
  • 【MATLAB代码】基于RSSI的蓝牙定位程序,N个锚点、二维平面(源代码,可直接复制)
    文章目录介绍主要功能技术细节适用场景:源代码运行结果结语介绍这款基于接收信号强度指示(RSSIRSSIRSSI)原理的蓝牙定位程序专为二维平面定位设计,通过N个蓝牙锚点实现对未知位置的精准定位。程序利用信号强度衰减模型,模拟测量误差&#x......
  • Wi-Fi定位的MATLAB代码,二维环境、N个节点(附程序,可复制粘贴到MATLAB上直接运行)
    文章目录程序信息WIFI定位源代码代码运行运行方法运行结果程序信息程序结构:运行界面截图:WIFI定位Wi-Fi定位简介Wi-Fi定位是一种利用无线局域网(WLAN)信号来确定设备或用户位置的技术。它广泛应用于室内定位、资产追踪、用户行为分析等领域,具有高精度......
  • 5.3 C#数组的基本操作与排序(数组赋值、最大最小值、冒泡排序、选择排序、Array类排序)
    文章目录5.3.1C#数组对象的赋值例5-5:通过循环给一维数组赋值例5-6:通过键盘输入给数组赋值5.3.2C#数组对象的输出例5-7:不同类型数组的输出5.3.3C#求数组中的最大(小)元素值例5-8:求数组中的最大值和最小值5.3.4C#数组排序1.使用Array类排序(例5-9)2.冒泡排序(例5-......
  • 初始vector——数组的高级产物
    前言:C++标准模板库(STL)是现代C++编程的基石,其中的容器、算法和迭代器为开发者提供了高效、灵活的数据处理工具。vector作为STL中最常用的顺序容器,不仅支持动态数组的功能,还通过自动内存管理和丰富的操作接口,极大简化了数据操作的复杂性。无论是在日常开发还是算法竞赛中,v......
  • 代码随想录算法训练营 | 背包问题 二维,背包问题 一维,416. 分割等和子集
    背包问题二维题目链接:背包问题二维文档讲解︰代码随想录(programmercarl.com)视频讲解︰背包问题二维日期:2024-10-09想法:dp[i][j],i表示需要从物品0-i中选择加入到背包中,j表示背包的容量,dp值表示最大的价值;递推公式,如果背包大小j都比此时要放的物品i的weight[i]小了,背包放不下......
  • 有序数组的平方
    实际上需要考虑的是两个数组的按序合并,思路还是双指针法,很容易想到合并后数组的最大值只会在最左边或者最右边,而去掉这个元素后也是一样的操作。因此左指针从负数的最大值即最左边开始,右指针从正数的最大值即最右边开始,比较后更新位置。这里需要想清楚的是结束条件,实际上更新位置......
  • java Gzip将json压缩成byte数组
    `importorg.apache.commons.lang3.StringUtils;importjava.io.*;importjava.nio.charset.StandardCharsets;importjava.util.Arrays;importjava.util.zip.GZIPInputStream;importjava.util.zip.GZIPOutputStream;publicclassTestController{publicsta......
  • java复制查询数组-cnblog
    java数组复制数组copyOf(待复制数组,复制后新数组的长度)如果复制后数组的长度,长于原来数组,多出来的元素会被补0,如果新数组元素少会从第一个元素,取到指定元素长度packagenb;importjava.util.Arrays;publicclasscopyOf_{publicstaticvoidmain(String[]......
  • <免费开题>基于Python二维码生成算法研究和实现|全套源码+文章lw+毕业设计+课程设计+数
    <免费开题>基于Python二维码生成算法研究和实现|全套源码+文章lw+毕业设计+课程设计+数据库+ppt摘要随着网络应用技术的普及和发展,计算机以及移动应用系统正在飞速的发展,通过互联网平台和移动端的应用技术帮助实现了智能化及数字化的管理模式,借助系统平台实现了高效便捷的管......