Javascript 您能否按字母顺序排列从JSON文件动态创建的jQuery列表?

Javascript 您能否按字母顺序排列从JSON文件动态创建的jQuery列表?,javascript,jquery,json,Javascript,Jquery,Json,我正在构建一个包含jQuery移动目录的应用程序,它从JSON文件中加载三部分名称。我想知道是否有一种方法可以自动按字母顺序排列JSON数组中的项目。委托开发该应用程序的人将来需要添加项目,如果他们不必担心按字母顺序添加项目,这对他们来说会更容易。由于IP的原因,我在这里使用了稍微不同的代码,但它应该以相同的方式工作。要澄清的是,正确的代码只有“name”,而不是“firstName”和lastName”,因此不需要按姓氏排序 编辑:我意识到这个问题是重复的,我不确定我能否证明它的独特性,但在另

我正在构建一个包含jQuery移动目录的应用程序,它从JSON文件中加载三部分名称。我想知道是否有一种方法可以自动按字母顺序排列JSON数组中的项目。委托开发该应用程序的人将来需要添加项目,如果他们不必担心按字母顺序添加项目,这对他们来说会更容易。由于IP的原因,我在这里使用了稍微不同的代码,但它应该以相同的方式工作。要澄清的是,正确的代码只有“name”,而不是“firstName”和lastName”,因此不需要按姓氏排序

编辑:我意识到这个问题是重复的,我不确定我能否证明它的独特性,但在另一页上没有给出对我有效的解决方案,因此该页不会回答我的问题

html:

试试这个:

data.enterprise.humans.sort(function(a, b) {
  return a.firstName.localeComapre(b.firstName);
});
试试这个:

data.enterprise.humans.sort(function(a, b) {
  return a.firstName.localeComapre(b.firstName);
});

可能最有效的解决方案是查询已排序的数据(例如,如果数据来自数据库,这相对来说很简单)。您还可以选择在服务器端排序。在前端,您可以使用例如

data.enterprise.humans.sort(function(first, second) {
    return first.name.localeCompare(second.name);
});
对于data.enterprise.robots和data.enterprise.wesleys,您应该重复代码或编写循环,例如:

for (key in data.enterprise) {
    data.enterprise[key].sort(function(first, second) {
        return first.name.localeCompare(second.name);
    });
}

请注意,后者仅在data.enterprise中的所有子数组都包含具有名称的对象时才起作用。

最有效的解决方案可能是查询已排序的数据(例如,如果数据来自数据库,这相对来说是微不足道的)。您还可以选择在服务器端进行排序。在前端,您可以使用

data.enterprise.humans.sort(function(first, second) {
    return first.name.localeCompare(second.name);
});
对于data.enterprise.robots和data.enterprise.wesleys,您应该重复代码或编写循环,例如:

for (key in data.enterprise) {
    data.enterprise[key].sort(function(first, second) {
        return first.name.localeCompare(second.name);
    });
}

请注意,后者仅在data.enterprise中的所有子数组都包含具有名称的对象时才起作用。

另一个相关问题的可能重复:是的,对不起,我刚刚找到了这些问题。即使在谷歌搜索了很多预问之后。但有一个问题需要澄清,我如何使用外部JSON文件实现这一点?我在JavaScript中尝试了一个排序函数它不知道我指的是什么。例如人类。也不知道怎么做,因为我在一个数组中有三个小数组。可能与另一个相关问题重复:是的,对不起,我刚刚找到了这些。即使在谷歌搜索了很多预问之后。不过有一个问题需要澄清,我如何使用外部JSON文件实现这一点?我尝试了一个排序函数在JavaScript中,它不知道我指的是什么。例如人类。也不知道如何做,因为我在一个数组中有三个小数组。请原谅我的无知,但我得到了“ReferenceError:数据未定义”“当我尝试这个的时候。我应该把JSON放在JS文件中吗?编辑:没关系,它成功了!我显然做了些蠢事。谢谢这意味着
data
$.getJSON
函数调用回调的返回。您是在
$.getJSON
回调中进行此调用的吗?我不确定,这是一个在线课程,他们给我们提供了代码示例,但他们并不总是完全解释它们。我知道我应该了解更多,但他们在课程中对我们投入了太多,以至于没有时间对每件事都做更多的研究。请原谅我的无知,但当我尝试这一点时,我得到了“引用错误:数据未定义”。我应该把JSON放在JS文件中吗?编辑:没关系,它成功了!我显然做了些蠢事。谢谢这意味着
data
$.getJSON
函数调用回调的返回。您是在
$.getJSON
回调中进行此调用的吗?我不确定,这是一个在线课程,他们给我们提供了代码示例,但他们并不总是完全解释它们。我知道我应该了解更多,但他们在课程中对我们投入了太多,以至于没有时间对每件事都做更多的研究。
sort
修改了现有的数组。无需捕获函数调用的返回。
sort
修改现有数组。无需捕获函数调用的返回。