JS中一维数组如何转化为三维数组
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章将为大家详细讲解有关JS中一维数组如何转化为三维数组,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。有人提问想要将一维数组转化为三位数组的需求,
千家信息网最后更新 2025年11月07日JS中一维数组如何转化为三维数组
这篇文章将为大家详细讲解有关JS中一维数组如何转化为三维数组,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
有人提问想要将一维数组转化为三位数组的需求,下面就给提问的的小伙伴安排上
下面是后端同学返给我们的一维数组数据格式:
[{ '品牌': 'xiaomi', '机型': '10', '配置': '512' }, { '品牌': 'xiaomi', '机型': '10', '配置': '128' }, { '品牌': 'xiaomi', '机型': '11', '配置': '128' }, { '品牌': 'xiaomi', '机型': '11', '配置': '64' }, { '品牌': 'iPhone', '机型': '10', '配置': '128' }, { '品牌': 'iPhone', '机型': '11', '配置': '64' }, { '品牌': 'iPhone', '机型': '12', '配置': '64' }, { '品牌': 'honor', '机型': '4', '配置': '256' }, { '品牌': 'honor', '机型': '5', '配置': '128' }, { '品牌': 'honor', '机型': '6', '配置': '128' }];下面是我们想要转化的数据格式(转化成三维数组 第一层级为品牌、第二层级为型号、第三层级为配置)
[ { "value": "xiaomi", "label": "xiaomi", "children": [ { "value": "10", "label": "10", "children": [ { "value": "512", "label": "512" }, { "value": "128", "label": "128" } ] }, { "value": "11", "label": "11", "children": [ { "value": "128", "label": "128" }, { "value": "64", "label": "64" } ] } ] }, { "value": "iPhone", "label": "iPhone", "children": [ { "value": "10", "label": "10", "children": [ { "value": "128", "label": "128" } ] }, { "value": "11", "label": "11", "children": [ { "value": "64", "label": "64" } ] }, { "value": "12", "label": "12", "children": [ { "value": "64", "label": "64" } ] } ] }, { "value": "honor", "label": "honor", "children": [ { "value": "4", "label": "4", "children": [ { "value": "256", "label": "256" } ] }, { "value": "5", "label": "5", "children": [ { "value": "128", "label": "128" } ] }, { "value": "6", "label": "6", "children": [ { "value": "128", "label": "128" } ] } ] } ]首先我们定义一个arr变量接收我们的一维数组,然后将arr作为参数传递给我们转化数组的函数,函数返回的就是我们最终的三维数组了
下面就是我们的arrConversion源码:
arrConversion (arr) { let keys = Object.keys(arr[0]) let level1 = keys[0]//获取一级属性名称 let level2 = keys[1]//获取二级属性名称 let level3 = keys[2]//获取三级属性名称 let list = Array.from(new Set( arr.map(item => { return item[level1] }))) let subList = [] list.forEach(res => { arr.forEach(ele => { if (ele[level1] === res) { let nameArr = subList.map(item => item.value) if (nameArr.indexOf(res) !== -1) { let nameArr2 = subList[nameArr.indexOf(res)].children.map(item => item.value) if (nameArr2.indexOf(ele[level2]) !== -1) { subList[nameArr.indexOf(res)].children[nameArr2.indexOf(ele[level2])].children.push({ value: ele[level3], label: ele[level3], }) } else { subList[nameArr.indexOf(res)].children.push({ value: ele[level2], label: ele[level2], children: [{ value: ele[level3], label: ele[level3], }] }) } } else { subList.push({ value: res, label: res, children: [{ value: ele[level2], label: ele[level2], children: [{ value: ele[level3], label: ele[level3], }] }] }) } } }) }) return subList }输出结果正确:
关于JS中一维数组如何转化为三维数组就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
品牌
配置
数组
机型
一维
三维
名称
层级
属性
内容
函数
就是
数据
文章
更多
格式
知识
篇文章
不错
位数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
党管网络 筑牢属地网络安全
宜昌市 网络安全工作责任制
力航网络技术有限公司
福建师范大学网络安全实验室
国外大的网络安全公司
大象数据库 连接
855网络安全研究生
华宇ArteryBase数据库
山东跳跳互联网科技有限公司
2021年研究生网络安全调剂
数据库工作笔记
网络安全与治理法律法规
软件开发招生院校
女孩学会计还是网络技术好
冠状病毒基因组数据库
铁道部网络安全的是什么级别
软件开发前期用自己的电脑
数据库触发器玩出出租系统
清代进士登科数据库
杨浦区品质软件开发代理品牌
南京瑞特网络技术有限公司
软件开发分包有多少差价
重庆网络安全技术提升
程序员请求数据库的方法
服务器cpu2603参数
超凡先锋连接不上服务器信息
局春节期间网络安全保障
航空公司达梦数据库
ic卡网络安全应急预案
中间件服务器