对 json 层次结构进行排序
Posted
技术标签:
【中文标题】对 json 层次结构进行排序【英文标题】:Sort json hierarchy 【发布时间】:2022-01-08 08:52:39 【问题描述】:我有以下结构的 JSON:
"name":"Scorpiones",
"children":[
"name":"Parabuthus",
"children":[
"name":"Parabuthus schlechteri"
,
"name":"Parabuthus granulatus"
]
,
"name":"Buthidae",
"children":[
"name":"Androctonus",
"children":[
"name":"Androctonus crassicauda"
,
"name":"Androctonus bicolor"
]
]
]
需要在层次结构的每一级按名称字段对元素进行排序。在 JS 的帮助下如何做到这一点?
【问题讨论】:
【参考方案1】:您可以使用Object.keys
,它返回一个包含所有对象键的数组,然后您可以简单地对该数组进行排序。
const getSortedKeys = (obj) =>
return Object.keys(obj).sort();
要扔掉你所有的对象嵌套键,你可以使用递归:
const trav = (obj) =>
if(obj instanceof Array)
// go inside each object in the array
obj.forEach(item => trav(item))
else if(typeof obj === "object")
// sort object keys
let keys = getSortedKeys(obj);
// do whatevery you want...
// go the the next levels
keys.forEach(key => trav(obj[key]))
【讨论】:
以上是关于对 json 层次结构进行排序的主要内容,如果未能解决你的问题,请参考以下文章
c语言 s数据结构 入元素序列,采用堆排序对序列进行排序,并将堆依据树状结构在屏幕上输出层次遍历的结果
如何在搜索栏中对对象进行筛选后,如何对层次结构中的对象进行排序?