Javascript 按$对数组元素进行排序。每个循环

Javascript 按$对数组元素进行排序。每个循环,javascript,Javascript,我有这个密码 $.getJson('api/players_.json', function(players){ // ... some logic code stuff to generate a custom parent object // with 20 teams of 11 players $.each(chosenSetupPerTeam, function(i){ console.log(chosenSetupPerTeam[i]); $.each(chose

我有这个密码

$.getJson('api/players_.json', function(players){
// ... some logic code stuff to generate a custom parent object
// with 20 teams of 11 players
$.each(chosenSetupPerTeam, function(i){
     console.log(chosenSetupPerTeam[i]);
     $.each(chosenSetupPerTeam[i], function(n){

       console.log(chosenSetupPerTeam[i][n].player_surname +' '+chosenSetupPerTeam[i][n].role_name +' '+chosenSetupPerTeam[i][n].team_name);

     });
});
我正在
$.getJSON
调用中实现一个数组迭代,以将一些元素附加到DOM中

它工作得很好,但是我需要用一个标准来排序迭代的结果。 这是控制台日志,我想按角色对玩家进行排序 示例:
Portiere、Difensore、Centrocampista、Attaccante
。 我还想问一个嵌套对象示例:
array(20)包含array(11)
,是否是一个更好的迭代方法

Extension Started!
team.min.js:1 Array(11)
team.min.js:1 Mazzitelli Centrocampista Sassuolo
team.min.js:1 Gravillon Difensore Sassuolo
team.min.js:1 Pegolo Portiere Sassuolo
team.min.js:1 Traoré Centrocampista Sassuolo
team.min.js:1 Matri Attaccante Sassuolo
team.min.js:1 Babacar Attaccante Sassuolo
team.min.js:1 Muldur Difensore Sassuolo
team.min.js:1 Goldaniga Difensore Sassuolo
team.min.js:1 Peluso Difensore Sassuolo
team.min.js:1 Magnanelli Centrocampista Sassuolo
team.min.js:1 Obiang Centrocampista Sassuolo

有人能为我指点迷津吗?

您可以使用此处的方法,通过此comparator回调,通过每个团队成员拥有的
角色名称
字段对任何给定团队的每个成员进行排序:

function (memberA, memberB) {
    /* If memberA role name alphabetically before memberB role_name
    then order memberA before memberB */
    return memberA.role_name < memberB.role_name ? -1 : 1;
}
函数(成员A、成员B){
/*如果memberA角色名称按字母顺序排列在memberB角色名称之前
然后在memberB之前订购memberA*/
返回memberA.role\u name
这可以按如下方式合并到您的代码中:

/* Use of forEach here is optional */
chosenSetupPerTeam.forEach(function(team) {

  /* Call sort() on the team array, and use comparator above to sort
     team members based based on the role name */
  const teamOrderedByRole = team.sort(function (memberA, memberB) {
      return memberA.role_name < memberB.role_name ? -1 : 1;
  });

  console.log(teamOrderedByRole);
});
/*此处使用forEach是可选的*/
chosenSetupPerTeam.forEach(功能(团队){
/*在团队数组上调用sort(),并使用上面的comparator进行排序
基于角色名称的团队成员*/
const teamOrderedByRole=team.sort(函数(memberA、memberB){
返回memberA.role\u name
好的,谢谢。另外,为了避免为每个玩家创建多个div,是否可以使用团队名称作为div id创建一个包装div,并对排序的玩家进行分组?不客气:)是的,这是可能的-只是确认一下,您希望为每个团队创建一个包含所有团队成员信息的div,按角色名称排序?是的,我想为每个团队分配一个父div:example
。。。这里列出了这支球队的所有球员。我不知道如何正确地追加,因为
.append()
似乎不是最好的方法