我希望对奖牌数组进行排序。我的第一个排序返回一个根据金牌排序的数组。然后,我希望划出那些金牌相同的牌,但银牌不同(铜牌相同)。我使用以下代码,这些代码实际上使我耗尽内存。这是我的代码:对象数组排序
static sort(data) {
let sorted = data.sort((a, b) => b.medal.gold - a.medal.gold);
let next, temp, current;
for (let i = 0; i < sorted.length; i++) {
current = sorted[i].medal;
if (sorted[i+1]) next = sorted[i+1].medal;
if (next) {
if (current.gold === next.gold) {
if (current.silver < next.silver) {
temp = sorted[i+1];
sorted[i+1] = sorted[i];
sorted[i] = temp;
}
else if (current.silver === next.silver) {
if (current.bronze < next.bronze) {
temp = sorted[i+1];
sorted[i+1] = sorted[i];
sorted[i] = temp;
}
}
}
}
}
return sorted;
}
可以请您分享数组 – brk
请更新您的阵列数据到您的问题中以获得更详细的信息。 –
为什么你在javascript中使用'static'? –