Javascript 按另一个数组(如GroupBy NodeJs)对数组排序

Javascript 按另一个数组(如GroupBy NodeJs)对数组排序,javascript,node.js,Javascript,Node.js,您好,我有两个数组,我想对它们进行排序另一个数组,但我想按分组排序 var a = [1,2,3,2,1,3,3,2,1] var b = [b,b,b,c,c,c,d,d,d] 我想要喜欢的结果 var a =[3,2,1,3,2,1,3,2,1] var b =[b,b,b,c,c,c,d,d,d] 假设您正试图根据每个数字的关联字母对组进行排序,您可以使用.reduce映射,首先根据b中的关联字母对每个数字进行分组,然后使用.sort对每个组进行排序,使其按降序排列。对每个组进行排序后

您好,我有两个数组,我想对它们进行排序另一个数组,但我想按分组排序

var a = [1,2,3,2,1,3,3,2,1]
var b = [b,b,b,c,c,c,d,d,d]
我想要喜欢的结果

var a =[3,2,1,3,2,1,3,2,1]
var b =[b,b,b,c,c,c,d,d,d]

假设您正试图根据每个数字的关联字母对组进行排序,您可以使用.reduce映射,首先根据b中的关联字母对每个数字进行分组,然后使用.sort对每个组进行排序,使其按降序排列。对每个组进行排序后,可以使用.concat将组数组展平,如下所示:

常数a=[1,2,3,2,1,3,3,2,1]; 常数b=['b','b','b','c','c','c','d','d','d']; const sortedGroups=[].concat…Array.froma.reducemap,val,i=> map.setb[i],map.getb[i]| |[]concatval, 新地图 .values,grouped=>grouped.sorta,b=>b-a;
console.logsortedGroups 如果你有一个这样的成对数组

const arr = [ {a:1, b:'b'} , {a:2, b:'b'}, {a:3, b:'b'},
              {a:2, b:'c'} , {a:1, b:'c'}, {a:3, b:'c'},
              {a:3, b:'d'} , {a:2, b:'d'}, {a:1, b:'d'} ]
 arr.sort ( (y,z) => 
      {
         const c = y.b.localeCompare(z.b)
         if (c !== 0) return c
         return z.a - y.a   /* order switched for descending sort */
      } )
您将在问题中的两个数组之间建立链接

您可以将该数组按如下顺序排序:从a开始降序,从b开始升序

const arr = [ {a:1, b:'b'} , {a:2, b:'b'}, {a:3, b:'b'},
              {a:2, b:'c'} , {a:1, b:'c'}, {a:3, b:'c'},
              {a:3, b:'d'} , {a:2, b:'d'}, {a:1, b:'d'} ]
 arr.sort ( (y,z) => 
      {
         const c = y.b.localeCompare(z.b)
         if (c !== 0) return c
         return z.a - y.a   /* order switched for descending sort */
      } )

你已经试过什么了?这两个数组之间的联系是什么?我从Oracledb获得了一个带有过程的数组,但我无法从最大值看到最小值。它即将混合。我试图从节点jsp修复这个问题,因为两个数组之间似乎根本没有任何连接。