【发布时间】:2026-02-09 01:50:02
【问题描述】:
我有一个来自远程 api 的 json 响应。在那个 JSON 中,我有一个 l2_list,它描述了各个孩子的排序顺序。
我想根据“l2_list”顺序对子项进行排序。
我有一个 json 数组,如下所示:
var TreeObj = `{
"RULE_JSON":
{
"2674":{
"pid":"0",
"level":"1",
"mid":"2674",
"name":"test1",
"l2_list": [3083],
"children":
{
"3083":{"pid":"2674","level":"2","mid":"3083","name":"MAINTENANCE","children":[]}
}
},
"2619":{
"pid":"0",
"level":"1",
"mid":"2619",
"name":"EFFICIENCY",
"l2_list": [2605,2608,2607,2626,2627,3057,3058],
"children":
{
"2605":{"pid":"2619","level":"2","mid":"2605","name":"IDLING","children":[]},
"2607":{"pid":"2619","level":"2","mid":"2607","name":"COMPLIANT","children":[]},
"2626":{"pid":"2619","level":"2","mid":"2626","name":"DISPATCHED","children":[]},
"2627":{"pid":"2619","level":"2","mid":"2627","name":"HOURS","children":[]},
"2608":{"pid":"2619","level":"2","mid":"2608","name":"COMPLIANT DEPART","children":[]},
"3058":{"pid":"2619","level":"2","mid":"3058","name":"CENTER VISITS","children":[]},
"3057":{"pid":"2619","level":"2","mid":"3057","name":"OFFICE VISITS","children":[]}
}
}
}
}`;
排序后,我的结果集应该显示 2619 个孩子,如下所示:
"l2_list": [2605,2608,2607,2626,2627,3057,3058],
"children":
{
"2605":{"pid":"2619","level":"2","mid":"2605","name":"IDLING","children":[]},
"2608":{"pid":"2619","level":"2","mid":"2608","name":"COMPLIANT DEPART","children":[]},
"2607":{"pid":"2619","level":"2","mid":"2607","name":"COMPLIANT","children":[]},
"2626":{"pid":"2619","level":"2","mid":"2626","name":"DISPATCHED","children":[]},
"2627":{"pid":"2619","level":"2","mid":"2627","name":"HOURS","children":[]},
"3057":{"pid":"2619","level":"2","mid":"3057","name":"OFFICE VISITS","children":[]},
"3058":{"pid":"2619","level":"2","mid":"3058","name":"CENTER VISITS","children":[]}
}
请帮帮我
【问题讨论】:
-
在 javascript 中,无法保证键出现在对象中的顺序,就像您在最终代码 sn-p 中指定的那样。 (进一步阅读:stefanjudis.com/today-i-learned/…)。至少,您需要将 'children' 的值重构为一个数组。可以以不同方式访问 JSON 吗?也许遍历 l2_list 并为每个调用 element.children[list2_listElement] ?
-
你为什么需要它?如果您已经将 id 排序在一个数组中,为什么使用它来按所需顺序检索孩子还不够呢?遍历 l2_list 数组并将每个值用作子项的索引。
-
@gaetanoM,它不是重复的,我想按照 l2_list 中的给定顺序对数组进行排序
标签: javascript arrays json sorting