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

标签 javascript jquery json

基于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/

相关文章:

json - Compojure ring-json 不返回 json

java - 主要错误无法找到记录器配置 "test"的附加程序 "test"

javascript - 如何使用扩展语法 es6 进行简化

javascript - 使用.replace()在页面上突出显示一个单词

javascript - "No ' Access-Control-Allow-Origin ' is present on the requested resource"css 文件错误

javascript - 将div float 到右下角

javascript - 如何从 JavaScript 的 JSON 数据以 HTML 格式显示图像

javascript - 请求在 doPost servlet 中没有参数

javascript - Bootstrap Affix 的替代方案

javascript - 使用javascript计算多个文本区域剩余字数