gpt4 book ai didi

javascript - JSON 菜单按字母顺序排列

转载 作者:行者123 更新时间:2023-11-28 15:40:06 26 4
gpt4 key购买 nike

基于this tutorial我制作了 JSON 菜单。现在项目按 id 排序,但我需要按字母顺序对它们进行排序,但不明白如何做到这一点。不确定 array.sort(); 对我的情况是否有帮助

JS代码如下:

var builddata = function () {
var source = [];
var items = [];

for (i = 0; i < data.length; i++) {
var item = data[i];
var label = item["text"];
var parentid = item["parentid"];
var id = item["id"];
if (items[parentid]) {
var item = { parentid: parentid, label: label, item: item };
if (!items[parentid].items) {
items[parentid].items = [];
}
items[parentid].items[items[parentid].items.length] = item;
items[id] = item;
}
else {
items[id] = { parentid: parentid, label: label, item: item };
source[id] = items[id];
}
}
return source;
}
var source = builddata();
var buildUL = function (parent, items) {
$.each(items, function () {
if (this.label) {
var li = $("<li>" + this.label + "</li>");
li.appendTo(parent);
if (this.items && this.items.length > 0) {
var ul = $("<ul></ul>");
ul.appendTo(li);
buildUL(ul, this.items);
}
}
});
}
var ul = $("<ul></ul>");
ul.appendTo("#jqxMenu");
buildUL(ul, source);

HTML:

 <div id='jqxMenu'>     
</div>

这里是JSFIDDLE

最佳答案

  source.sort(function(a, b){
if(a.text < b.text) return -1;
if(a.text > b.text) return 1;
return 0;
})

...是基础。但是,我认为在这种情况下需要递归实现。

这里:jsfiddle

关于javascript - JSON 菜单按字母顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24159505/

26 4 0