Node.js 按百分比对数组排序,但如果用户具有相同的百分比,则按终止排序

Node.js 按百分比对数组排序,但如果用户具有相同的百分比,则按终止排序,node.js,Node.js,因此,我正在对数组进行排序 let userDataWinSorted = userDataWinsFiltered.sort((a,b) => Math.floor((b.wins/(b.wins+b.loses))) - Math.floor((a.wins/(a.wins+a.loses)))); 但它让我们说 乔恩5胜0负 安迪有10胜0负 在排序中,乔恩将领先于安迪,因为乔恩只是排在第一位 当两个人拥有相同的百分比时,如何按百分比对阵列进行排序,同时也计算杀死数?因此,在这种情

因此,我正在对数组进行排序

let userDataWinSorted = userDataWinsFiltered.sort((a,b) => Math.floor((b.wins/(b.wins+b.loses))) - Math.floor((a.wins/(a.wins+a.loses))));
但它让我们说

乔恩5胜0负 安迪有10胜0负

在排序中,乔恩将领先于安迪,因为乔恩只是排在第一位


当两个人拥有相同的百分比时,如何按百分比对阵列进行排序,同时也计算杀死数?因此,在这种情况下,any将高于jon。

当winloss%的第一个比较器返回0(意味着元素相等)时,您需要使用另一个比较器进行kill:

const sortWithPercentageAndKills = (a, b) => {
  if (a.percentage === b.percentage) {
    return a.kills - b.kills;
  }
  return a.percentage - b.percentage;
}

const sortedArray = inputArray.sort(sortWithPercentageAndKills);
num\u compar\u gen函数(键){
返回函数(a,b){
如果(a[键]>b[键]){
返回-1;
}否则如果(a[键]控制台日志(已排序)更多说明??发布您的原始数据和排序数据(您想要的)我不知道如何进一步澄清它。。。Jon:3/0*100=100%Andy:7/0*100=100%仅使用排序后的OP,Jon可以在排序后的数组中位于Andy之上。如果两个玩家的命中率相同,我需要在我的排序中考虑杀戮情况……你可以把你的解释放入一个等式-
如果方便的话-
如果有相同的杀戮情况,其他的比例更好