【问题标题】:Sort json hierarchy对 json 层次结构进行排序
【发布时间】: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 的帮助下如何做到这一点?

【问题讨论】:

    标签: javascript arrays json sorting


    【解决方案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]))
        }
    }

    【讨论】:

      猜你喜欢
      • 2020-12-25
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      • 2013-09-16
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      相关资源
      最近更新 更多