Javascript 基于json中的两个字段进行排序

Javascript 基于json中的两个字段进行排序,javascript,html,jquery,json,Javascript,Html,Jquery,Json,我想根据两个字段对json数据进行排序。我想首先根据地理位置和用户名对数据进行排序。我想根据地理位置对数据进行排序,并在地理位置内对用户进行排序。例如在地理位置“Europe”中 按字母顺序对用户排序,然后按“中东”地理位置排序 const response=[{用户名:“Denisse Morales”,地理位置:“NSU”,状态:“达到”,月份:“五月”,周2:2}, {用户名:“Chandra Jeevan J”,地理位置:“美国东部”,状态:“到达”,月份:“五月”,周2:1}, {用

我想根据两个字段对json数据进行排序。我想首先根据地理位置和用户名对数据进行排序。我想根据地理位置对数据进行排序,并在地理位置内对用户进行排序。例如在地理位置“Europe”中 按字母顺序对用户排序,然后按“中东”地理位置排序

const response=[{用户名:“Denisse Morales”,地理位置:“NSU”,状态:“达到”,月份:“五月”,周2:2},
{用户名:“Chandra Jeevan J”,地理位置:“美国东部”,状态:“到达”,月份:“五月”,周2:1},
{用户名:“艾米·哈利勒”,地理位置:“美国西部”,状态:“到达”,月份:“五月”,周2:2},
{用户名:“Ashuwinth Panneer”,地理位置:“欧洲”,状态:“到达”,月份:“六月”,周2:1},
{用户名:“John Joshuva”,地理位置:“欧洲”,状态:“到达”,月份:“五月”,周2:3},
{用户名:“Jose Alberto”,地理位置:“欧洲”,状态:“到达”,月份:“四月”,周2:2},
{用户名:“Dhivya Muthusamy”,地理位置:“欧洲”,状态:“达到”,月份:“6月”,周2:10},
{用户名:“Faizan Mohammed”,地理位置:“中东”,状态:“到达”,月份:“五月”,周2:3},
{用户名:“Jaison Clinton”,地理位置:“NSU”,状态:“达到”,月份:“4月”,周2:9}];
response.sort((a,b)=>a.Geo.localeCompare(b.Geo));
response.sort((a,b)=>a.Username.localeCompare(b.Username));

控制台日志(响应)我想你想要这样的东西

const response=[{用户名:“丹尼斯·莫拉莱斯”,地理位置:“NSU”,状态:“到达”,月份:“五月”,周2:2,},{用户名:“钱德拉·吉万J”,地理位置:“美国东部”,状态:“到达”,月份:“五月”,周2:1,},{用户名:“艾米·哈利勒”,地理位置:“美国西部”,状态:“到达”,月份:“五月”,周2:2,},{用户名:“阿舒温特·潘尼尔”,地理位置:“欧洲”,状态:“到达”,月份:“六月”,周2:1,},{用户名:“约翰·乔舒瓦”,地理位置:“欧洲”,状态:“到达”,月份:“五月”,周2:3,},{用户名:“何塞·阿尔贝托”,地理位置:“欧洲”,状态:“到达”,月份:“四月”,周2:2,},{用户名:“迪维亚·穆图萨米”,地理位置:“欧洲”,状态:“到达”,月份:“六月”,周2:10,{用户名:“Faizan Mohammed”,地理位置:“中东”,状态:“到达”,月份:“五月”,周2:3,},{用户名:“杰森·克林顿”,地理位置:“NSU”,状态:“到达”,月份:“四月”,周2:9,},];
response.sort(
(a,b)=>a.Geo.localeCompare(b.Geo)| | a.Username.localeCompare(b.Username)
);

console.log(response);
您可以比较连接的地理位置和用户名

const response=[{用户名:“Denisse Morales”,地理位置:“NSU”,状态:“达到”,月份:“五月”,周2:2},
{用户名:“Chandra Jeevan J”,地理位置:“美国东部”,状态:“到达”,月份:“五月”,周2:1},
{用户名:“艾米·哈利勒”,地理位置:“美国西部”,状态:“到达”,月份:“五月”,周2:2},
{用户名:“Ashuwinth Panneer”,地理位置:“欧洲”,状态:“到达”,月份:“六月”,周2:1},
{用户名:“John Joshuva”,地理位置:“欧洲”,状态:“到达”,月份:“五月”,周2:3},
{用户名:“Jose Alberto”,地理位置:“欧洲”,状态:“到达”,月份:“四月”,周2:2},
{用户名:“Dhivya Muthusamy”,地理位置:“欧洲”,状态:“达到”,月份:“6月”,周2:10},
{用户名:“Faizan Mohammed”,地理位置:“中东”,状态:“到达”,月份:“五月”,周2:3},
{用户名:“Jaison Clinton”,地理位置:“NSU”,状态:“达到”,月份:“4月”,周2:9}];
响应.排序((a,b)=>{
返回(a.Geo+a.Username)>(b.Geo+b.Username)?1:-1;
});
console.log(response);
除了每个属性的字符串长度问题之外,这不考虑相同(读取相等)的值。