首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据多个字段对数组进行排序?

如何根据多个字段对数组进行排序?
EN

Stack Overflow用户
提问于 2022-10-03 13:08:13
回答 1查看 50关注 0票数 0

我有以下数组

代码语言:javascript
复制
var data =  [
{
  "orig": "FRA",
  "dest": "DRS",
  "ioi": "O",
  "dow": "4",
  "accessRight": "Private",
  "priority": "6"},
{
  "orig": "FRA",
  "dest": "IBZ",
  "ioi": "O",
  "dow": "257",
  "accessRight": "Global",
  "priority": "6"},
{
  "orig": "FRA",
  "dest": "AGP",
  "ioi": "I",
  "dow": "1",
  "accessRight": "Private",
  "priority": "7"},
{
  "orig": "FRA",
  "dest": "AGP",
  "ioi": "I",
  "dow": "5",
  "accessRight": "Global",
  "priority": "20"},

{
  "orig": "FRA",
  "dest": "IBZ",
  "ioi": "I",
  "dow": "1234567",
  "accessRight": "Private",
  "priority": "20"}
];

我希望对数据进行排序,在对" accessRight“以外的任何列进行排序之后,我得到的结果是数组的起始部分为accessRight= Private,结束时为其他?

我试过用这个:

代码语言:javascript
复制
data.sort(function(a,b){
return b['accessRight'].localeCompare(a['accessRight']) ||
  Math.round(parseFloat(b['priority'])) <= 
Math.round(parseFloat(a['priority']))
  ? 1
  : -1;
})
EN

回答 1

Stack Overflow用户

发布于 2022-10-03 13:15:41

代码语言:javascript
复制
var data =  [
{
  "orig": "FRA",
  "dest": "DRS",
  "ioi": "O",
  "dow": "4",
  "accessRight": "Private",
  "priority": "6"},
{
  "orig": "FRA",
  "dest": "IBZ",
  "ioi": "O",
  "dow": "257",
  "accessRight": "Global",
  "priority": "6"},
{
  "orig": "FRA",
  "dest": "AGP",
  "ioi": "I",
  "dow": "1",
  "accessRight": "Private",
  "priority": "7"},
{
  "orig": "FRA",
  "dest": "AGP",
  "ioi": "I",
  "dow": "5",
  "accessRight": "Global",
  "priority": "20"},

{
  "orig": "FRA",
  "dest": "IBZ",
  "ioi": "I",
  "dow": "1234567",
  "accessRight": "Private",
  "priority": "20"}
];

let result = data.sort((a,b) =>{
  if(a.accessRight=='Private'){
    return -1
   }
   return 1
   //return a.accessRight.localeCompare(b.accessRight)
})

console.log(result)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73935941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档