按照父级和嵌套级别对嵌套对象数组进行排序。
创始人
2024-08-24 01:00:09
0

可以使用递归和数组排序来对嵌套对象数组进行排序。以下是一个示例代码,其中假设数组中的每个对象都有一个 “parent_level” 和 “nested_level” 属性,表示每个对象的父级和嵌套级别。

//定义一个排序函数
function sortArrayByParentAndNestedLevel(arr) {
  arr.sort(function(a, b) {
    if (a.parent_level === b.parent_level) {
      return a.nested_level - b.nested_level;
    } else {
      return a.parent_level - b.parent_level;
    }
  });
  arr.forEach(function(obj){
    if(Array.isArray(obj.children)){
      obj.children = sortArrayByParentAndNestedLevel(obj.children);
    }
  });
  return arr;
}

//使用示例
var arr = [
  {id:'1', parent_level:1, nested_level:0, children:[
    {id:'1.1', parent_level:1, nested_level:1},
    {id:'1.2', parent_level:1, nested_level:2},
    {id:'1.3', parent_level:1, nested_level:1}
  ]},
  {id:'2', parent_level:2, nested_level:0, children:[
    {id:'2.1', parent_level:2, nested_level:1},
    {id:'2.2', parent_level:2, nested_level:2},
    {id:'2.3', parent_level:2, nested_level:1}
  ]},
  {id:'3', parent_level:3, nested_level:0, children:[
    {id:'3.1', parent_level:3, nested_level:1},
    {id:'3.2', parent_level:3, nested_level:2},
    {id:'3.3', parent_level:3, nested_level:1}
  ]}
];

var sortedArr = sortArrayByParentAndNestedLevel(arr);

console.log(sortedArr);

该函数中,首先对整个数组进行排序,排序规则是先按照父级进行排序,如果父级相同,则

相关内容

热门资讯

一分钟快速了解“wepoker... >>您好:wepoker开挂辅助确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总...
重大来袭“wepoker有没有... 无需打开直接搜索加微信客服(136704302)咨询了解wepoker有没有挂辅助器目前(微信:13...
最新技巧“wepoker靠谱不... 您好:wepoker靠谱不这款游戏是可以开挂的,软件加【添加微信客服136704302】确实是有挂的...
免费测试版“wepoker有挂... 您好:wepoker有挂吗透视软件的软件,软件加客服确实是有挂的,很多玩家在这款游戏中打牌都会发现很...
一分钟了解“微扑克发牌规律”开... 微扑克发牌规律是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微信...
重大消息“wepoker可以透... 您好,wepoker可以透视开挂吗这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302...
玩家攻略“wpk透视插件怎么安... 无需打开直接搜索;操作使用教程:玩家攻略“wpk透视插件怎么安装”开挂辅助器(透视)曝光教程1、界面...
教程攻略“wepoker能开挂... 您好:wepoker能开挂吗这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用...
玩家必看教程“wepoker透... 您好:wepoker透视真的吗这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
一秒答解“wepoker真的可... 您好:wepoker真的可以开挂透视吗这款游戏是可以开挂的,软件加【添加微信客服136704302】...