首页 > 解决方案 > 根据父 ID 对节点进行排序

问题描述

想在调用其父节点之前对我的数据进行排序

[
  {
    "id": 7832454551,
    "name": "usr",
    "type": "DIRECTORY"
  },
  {
    "id": 7832454554,
    "name": "applications",
    "type": "DIRECTORY",
    "parentId": 7832454553
  },
  {
    "id": 7832454555,
    "name": "mimeinfo.cache",
    "type": "FILE",
    "parentId": 7832454554
  },
  {
    "id": 7832454553,
    "name": "share",
    "type": "DIRECTORY",
    "parentId": 7832454552
  },
  {
    "id": 7832454552,
    "name": "local",
    "type": "DIRECTORY",
    "parentId": 7832454551
  }
]

想要使用 javascript 更新这样的数据

[
  {
    "id": 7832454551,
    "name": "usr",
    "type": "DIRECTORY"
  },
  {
    "id": 7832454552,
    "name": "local",
    "type": "DIRECTORY",
    "parentId": 7832454551
  },
  {
    "id": 7832454553,
    "name": "share",
    "type": "DIRECTORY",
    "parentId": 7832454552
  },
  {
    "id": 7832454554,
    "name": "applications",
    "type": "DIRECTORY",
    "parentId": 7832454553
  },
  {
    "id": 7832454555,
    "name": "mimeinfo.cache",
    "type": "FILE",
    "parentId": 7832454554
  }
]

标签: javascriptfunctionsortingrecursion

解决方案


试试这个

const sortedData = [
  {
    "id": 7832454551,
    "name": "usr",
    "type": "DIRECTORY"
  },
  {
    "id": 7832454554,
    "name": "applications",
    "type": "DIRECTORY",
    "parentId": 7832454553
  },
  {
    "id": 7832454555,
    "name": "mimeinfo.cache",
    "type": "FILE",
    "parentId": 7832454554
  },
  {
    "id": 7832454553,
    "name": "share",
    "type": "DIRECTORY",
    "parentId": 7832454552
  },
  {
    "id": 7832454552,
    "name": "local",
    "type": "DIRECTORY",
    "parentId": 7832454551
  }
].sort(function(a,b){

if(a.parentId!= undefined && b.parentId != undefined){
  return a.parentId > b.parentId
}
return false;


});

console.log(sortedData);


推荐阅读