JS中的名称排序

问题描述 投票:1回答:1

我有一个脚本,显示仓库中最后一个已知位置的员工列表。不幸的是,它没有按字母顺序对名称进行排序;因此,对于冗长的员工名单而言,它会变得混乱。员工数据以这种方式存储在js文件中:

var _Employees = {
"%EmployeeID%" : "%login% |%Name%,%Surname%",
"%EmployeeID%" : "%login% |%Name%,%Surname%",
"%EmployeeID%" : "%login% |%Name%,%Surname%",
"%EmployeeID%" : "%login% |%Name%,%Surname%",
"%EmployeeID%" : "%login% |%Name%,%Surname%",
};

DrawContent函数:

function DrawContent(){
  var aa = '<table id="Results"><tr><th>Surname, Name</th><th>Last Scan</th><th>Last Activity</th><th>Workstation</th></tr>';
  $.each(_Employees, function(_employeeId, _employee){
    var _employeeName = _employee.split('|')[1];
    aa += '<tr class="aa_' + _employeeId + '">';
    aa += '<td>' + _employeeName + '</td>';
    aa += '<td></td>';
    aa += '<td></td>';
    aa += '<td></td>';
    aa += '</tr>';
  });
  aa += '</table>';

  $('#mydiv').append(aa);
}

有人可以协助并为我提供快速简单的解决方案来按字母顺序列出名称吗?

谢谢!

javascript
1个回答
0
投票

类似:

Object.entries(_Employees) // convert to array of [key, value] pairs
      .sort((e1,e2) => e1[1].localeCompare(e2[1])) // sort by value
      .forEach(([employeeId, employeeName]) => { // for each on the sorted array
        // whatever with sorted array
      })
© www.soinside.com 2019 - 2024. All rights reserved.