js数据格式转换,将平面数组转换为树

js转换数据格式
{

[a0,b1,c1,d1,156],
[a0,b1,c2,d2,938],
[a0,b2,c3,d3,156]

}
格式
转换成

{
"a0": {
"b1": {
"c1": {
"d1": 156
},
"c2": {
"d2": 938
}
},
"b2": {
"c3": {
"d3": 156
}
}
}
}

格式 求教

2个回答

这个估计只有你自己写了。。。这种需要多次循环,而且你确定这个格式固定?

不过可以推荐给你一个工具,可以格式化json,你可以看看json.cn




/* *函数定义 *入口参数data,平行数组 *key,id字段 *parentKey,父字段 *map,需要将原始属性名称转换为什么名称 */ function treeUtil(data,key,parentKey,map) { this.data=data; this.key=key; this.parentKey=parentKey; this.treeParentKey=parentKey; //parentKey要转换成什么属性名称 this.treeKey=key; //key要转换成什么属性名称 this.map=map; if(map){ if(map[key])this.treeKey=map[key]; } this.toTree=function () { var data=this.data; var pos={}; var tree=[]; var i=0; while(data.length!=0){ if(data[i][this.parentKey]==0){ var _temp = this.copy(data[i]); tree.push(_temp); pos[data[i][this.key]]=[tree.length-1]; data.splice(i,1); i--; }else{ var posArr=pos[data[i][this.parentKey]]; if(posArr!=undefined){ var obj=tree[posArr[0]]; for(var j=1;j<posArr.length;j++){ obj=obj.children[posArr[j]]; } var _temp=this.copy(data[i]); obj.children.push(_temp); pos[data[i][this.key]]=posArr.concat([obj.children.length-1]); data.splice(i,1); i--; } } i++; if(i>data.length-1){ i=0; } } return tree; } this.copy=function (item) { var _temp={ children:[] }; _temp[this.treeKey]=item[this.key]; for(var _index in item){ if(_index!=this.key && _index!=this.parentKey){ var _property = item[_index]; if((!!this.map) && this.map[_index]) _temp[this.map[_index]]=_property; else _temp[_index]=_property; } } return _temp; } } //使用示例,data需要有key parentKey属性,其它属性内容没有限制。 var data=[ {id:1,parent:0,text:'A'}, {id:2,parent:4,text:"B"}, {id:3,parent:7,text:"C"}, {id:4,parent:1,text:"D"}, {id:5,parent:0,text:"E"}, {id:6,parent:5,text:'B'}, {id:7,parent:4,text:"F"} ]; //简单使用 var tree = new treeUtil(data,'id','parent'); console.log(tree.toTree()); //带属性名称转换 data=[ {id:1,parent:0,text:'A'}, {id:2,parent:4,text:"B"}, {id:3,parent:7,text:"C"}, {id:4,parent:1,text:"D"}, {id:5,parent:0,text:"E"}, {id:6,parent:5,text:'B'}, {id:7,parent:4,text:"F"} ]; var map={"text":"title","id":"id0"}; var tree1 = new treeUtil(data,'id','parent',map); console.log(tree1.toTree());


Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
javascript多维数据数组的转换是怎么进行循环和判断的,怎么直接判断转换以后的字符串?
javascript多维数据数组的转换是怎么进行循环和判断的,怎么直接判断转换以后的字符串?
Extjs 有没有将gridPanel的stroe数据直接转换为Json串数组的方法?
有没有将gridPanel的stroe里的数据直接转换为Json串数组的方法? 不如将store里的数据转换为下列的形式: [{name:"wang"},{name:"li"},{name:"zhang"}]
Android-转换字符串数组到json
传递字符串数组到JavaScript,好像不能实现,因此想转换字符串数组到Json,然后发送到JavaScript。不知道怎么实现?
JS如何将多维数组转换为带大括号的字符串
比如: [1,2,[1,2,[3]],[3]] 例如这样的多维数组 转换成下面的字符串 {1,2,{1,2,{3}},{3}}
json格式转换
如果不用json lib来进行格式转换,有什么其他方法进行json格式转换不。我是用jQuery.ajax()请求Action,返回的是一个javabean,js不好处理,取不到bean的属性值。如果用json格式就方便多了。有没有什么通用的方法进行数据格式转换……
js科学计数法转换数字
js科学计数法转换数字 输入32位数字计算后显示的值是科学计数法值,怎么转换成正常数值
用JavaScript如何将json数组写入.js文件中?
现有一个json数组,如何用JavaScript实现将json数组写入.js文件中。
js如何将压缩过的字节数组转换为图片展示在前台
工程需求,我后台生成一个图片传输,用字节数组传输给前台,前台展示,因为字节数组过大,导致报文过长,我便把字节数组压缩后传输到前台,这种情况下,我前台如何利用js在前台展示出这张图片?
javascript中如何将字符数组转为整型数组
在javascript中,有一段Url代码,格式类似X#Y,其中X部分是一个网站,Y部分是一串数组,用;隔开,我用Url.split("#")[1].split(";")来读取出来的数据,断点测试出来的结果,读出来的这段数组默认是string类型的,我想转为int的,代码应该怎么写?
JSON数据如何转换为时间格式?
在THINKPHP模板页中输出{{deadline}} 输出时间, 但是输出的是 1441761664 类似这样的一串数字, 请问该如何转换为时间格式?
JavaScript,一个数组,其中的数据个数并不是固定的,像这样的数组应该如何进行排序?
JavaScript,一个数组,其中的数据个数并不是固定的,像这样的数组应该如何进行排序?
js怎么判断一个数据是数组类型,还有其他方法吗??
js怎么判断一个数据是数组类型,还有其他方法吗??lodash有没有解决办法??判断任意一个数据位数组的方式?? 能够使用instanceof和typeOf还有没有其他的方式???
js或jq单个数据 组成一个新的数组
从数据库循环的数据里面拿出需要的数据 组成一个新的数组 求代码。。奈何js基础太差 如图:数据![图片说明](https://img-ask.csdn.net/upload/201905/24/1558627628_839815.png) 需要组成的数据形式:如图:
javascript数据类型的转换问题
javascript里,16进制转换成10进制用parsInt转换,但是如果16进制转换成10进制并且区分正负,比如说-11的16进制是FFF5,var str = 0XFFF5,alert(parsInt(str),16);结果为65525,并不是-11,请问一下各位大佬该怎么转换?
JS 的时间格式与JSON时间格式如何互相转换?
var myDate = new Date(); myDate.toLocaleString( ); 类似这种获取当前时间的JS格式,怎么转换成json格式? 或者怎么把json的时间格式转换成JS格式。 我这里主要做的是要获取当前时间与json格式的截止时间的时间差
利用javascript实现数据转换的功能
利用javascript实现数据转换的功能,要求最好是输入任意数都可以实现,详见下图:![图片](https://img-ask.csdn.net/upload/201610/21/1477052541_995003.jpg)
php 或 js 将json数据或数组改成自己想要的格式
新手上路,请问大神们,这样的json数据如何改成下面第二种我想要的格式。 ``` [{ "DATE": "2019-11-11 11:04:31", "CRXS1": "0 " }, { "DATE": "2019-11-11 11:40:50", "CRXS1": "0 " }, { "DATE": "2019-11-15 11:03:29", "CRXS1": "0 " }, { "DATE": "2019-11-15 11:04:29", "CRXS1": "0 " }, { "DATE": "2019-11-15 11:05:29", "CRXS1": "0 " }] ``` 改成这样的格式: ``` [{ value: [ "2019-11-11 11:04:31", 0 ] }, { value: [ "2019-11-11 11:40:50", 0 ] }, { value: [ "2019-11-15 11:03:29", 0 ] }, { value: [ "2019-11-15 11:04:29", 0 ] }, { value: [ "2019-11-15 11:05:29", 0 ] } ] ``` 用php或js都行。
js拼接对象里面含数组的json数据?
本人新手,对js了解不深,js拼接对象里面含数组json字符串不知道怎么搞了,求大神指导 数组代码 ``` var crulearr=[] for(var ccode of this.newDB){ if(ccode.id == this.ipboxid){ crulearr.push('{"rules":[{"field":"ParentID","op":"equal","value":"'+this.ipboxid+'","type":"int"},{"field":"CarbinCode","op":"equal","value":"'+this.cabincodearr+'","type":"string"}],"op":"and"}') } else{ crulearr.push('{"rules":[{"field":"ParentID","op":"equal","value":"'+ccode.id+'","type":"int"},{"field":"CarbinCode","op":"equal","value":"'+ccode.cabincodes+'","type":"string"}],"op":"and"}') } } console.log('row202:'+ JSON.stringify(crulearr)) ``` 数组数据如下: ![图片说明](https://img-ask.csdn.net/upload/201911/17/1574003769_109293.png) 拼json数据代码 ``` var rules='{"groups":'+ JSON.stringify(crulearr) +',"op":"and"}' this.prule=JSON.parse(rules) console.log('row222:'+ JSON.stringify(this.prule) ) ``` 获取到的数据如下: ![图片说明](https://img-ask.csdn.net/upload/201911/17/1574003811_555565.png) 想要实现的数据格式: ![图片说明](https://img-ask.csdn.net/upload/201911/17/1574003829_317921.png)
JavaScript数据转换问题
如何用JavaScript把 var string = "112312312312100,112312312312103,112312312312105-111,112312312312106,112312312312102"; 转换成类似 [{"earMark":"112312312312100"},{"earMark":"112312312312103"},{"earMark":"112312312312105-111"},{"earMark":"112312312312106"},{"earMark":"112312312312102"}]
130 个相见恨晚的超实用网站,一次性分享出来
相见恨晚的超实用网站 持续更新中。。。
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱 极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件, 选择安装到U盘(按照操作无需更改) 三、重启进入pe系统 1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12) 选择需要启...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
java源码分析 Arrays.asList()与Collections.unmodifiableList()
ArrayList支持所有的可选操作(因为一个UnsupportedOperationException异常都没有捕获到),所以要想拥有完备的功能,还是得使用ArrayList啊。 Arrays$ArrayList除了set()操作外,都不支持。 Collections$UnmodifiableRandomAccessList都不支持,名副其实的Unmodifiable不可修改。
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
Java学习笔记(七十二)—— Cookie
概述 会话技术: 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器发送资源请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Cookie,把数据存储到客户端 服务器端会话技术:Session,把数据存储到服务器端 Cookie 概念:客户端会话技术,将数据存储到客户端 快速入门: 使用步骤: 创建C...
程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
程序员该看的几部电影
1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?如何...
蓝桥杯知识点汇总:基础知识和常用算法
此系列包含蓝桥杯所考察的绝大部分知识点,一共有==基础语法==,==常用API==,==基础算法和数据结构==,和==往年真题==四部分,虽然语言以JAVA为主,但算法部分是相通的,C++组的小伙伴也可以看哦。
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
实现简单的轮播图(单张图片、多张图片)
前言 刚学js没多久,这篇博客就当做记录了,以后还会完善的,希望大佬们多多指点。ps:下面出现的都是直接闪动,没有滑动效果的轮播图。 单张图片的替换 · ...
强烈推荐10本程序员在家读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
Linux自学篇——linux命令英文全称及解释
man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 意思是密码。 su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mkdir:Make directory ...
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药...
Java与Python学习通法(1)和(2)序言和编程语言发展史怎么学
dd
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
阿里架构师花近十年时间整理出来的Java核心知识pdf(Java岗)
由于细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容! 整理了一份Java核心知识点。覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。 欢迎大家加入java学习交流社区 点击加入 可获取文中文档 小编推荐: ...
Python基础知识点梳理
python常见知识点梳理 摘要: 本文主要介绍一些平时经常会用到的python基础知识点,用于加深印象。python的详细语法介绍可以查看官方编程手册,也有一些在线网站对python语法进行了比较全面的介绍,比如菜鸟教程: python3 教程|菜鸟教程 本文主要是介绍基础语法,操作实例在另一篇博客中单独介绍: python语言介绍 python是一门解释型语言,python的设计目标: 一门...
2020年2月全国程序员工资统计,平均工资13716元
趋势 2020年2月,中国大陆程序员平均工资13716员,比上个月增加。具体趋势如图: 各主要程序员城市工资变化 城市 北京,上海,深圳,杭州,广州四地的工资最高。 city 平均工资 最低工资 中位数 最高工资 招聘人数 百分比 北京 18098 3750 15000 45000 20529 9.53% 深圳 16903 5750 15000 37500 30941 1...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad...
为什么说程序员做外包没前途?
之前做过不到3个月的外包,2020的第一天就被释放了,2019年还剩1天,我从外包公司离职了。我就谈谈我个人的看法吧。首先我们定义一下什么是有前途 稳定的工作环境 不错的收入 能够在项目中不断提升自己的技能(ps:非技术上的认知也算) 找下家的时候能找到一份工资更高的工作 如果你目前还年轻,但高不成低不就,只有外包offer,那请往下看。 外包公司你应该...
相关热词 c#导入fbx c#中屏蔽键盘某个键 c#正态概率密度 c#和数据库登陆界面设计 c# 高斯消去法 c# codedom c#读取cad文件文本 c# 控制全局鼠标移动 c# temp 目录 bytes初始化 c#
立即提问