pId的数据结构转children 数据结构(JS)
在工作的时候需要将带有pid的数据转换成list级联结构,,一直都没有找到太好的工具函数。偶然间看到了这个函数,研究了下,感觉这个函数很强大,所以记录下来,作为备用,同时也贴出来,供大家使用;transData (a, idStr, pidStr, childStr) {const r = []const hash = {}const id = idSt...
·
博客地址:http://www.globm.top/blog/1/detail/19
在工作的时候需要将带有pid的数据转换成list级联结构,,一直都没有找到太好的工具函数。偶然间看到了这个函数,研究了下,感觉这个函数很强大,所以记录下来,作为备用,同时也贴出来,供大家使用;
transData (a, idStr, pidStr, childStr) {
const r = []
const hash = {}
const id = idStr
const pid = pidStr
const children = childStr
let i = 0
let j = 0
const len = a.length
for (; i < len; i++) {
hash[a[i][id]] = a[i]
}
for (; j < len; j++) {
const aVal = a[j]
const hashVP = hash[aVal[pid]]
if (hashVP) {
!hashVP[children] && (hashVP[children] = [])
hashVP[children].push(aVal)
} else {
r.push(aVal)
}
}
return r
}
/**
* json格式转树状结构
* @param {json} json数据
* @param {String} id的字符串
* @param {String} 父id的字符串
* @param {String} children的字符串
* @return {Array} 数组
*/
const arr1 = this.transData(arr, 'id', 'pid', 'children')
console.log(arr1)

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)