我有一个包含数组的对象。我试图通过赢率对数组进行排序,但以下代码似乎根本没有做任何事情。我无法看到compareWinRate函数甚至被调用,但我不确定为什么不这样做。
let statistics = {
wins: 0,
kills: 0,
deaths: 0,
assists: 0,
heroes: [],
};
statistics.heroes[hero1] = { matches: 5, wins: 2 };
statistics.heroes[hero2] = { matches: 5, wins: 4 };
function compareWinRate(a, b) {
return ((b.wins / b.matches) - (a.wins / a.matches));
}
statistics.heroes.sort(compareWinRate);
如果我在sort语句之前和之后显示数组,它们是相同的。
答案 0 :(得分:2)
compareWinRate
对我来说似乎很好。
只需将stats对象分配给数组中的数字索引:
statistics.heroes[0] = { matches: 5, wins: 2 };
statistics.heroes[1] = { matches: 5, wins: 4 };