没有调用JavaScript比较函数?

时间:2017-03-26 13:47:13

标签: javascript arrays sorting

我有一个包含数组的对象。我试图通过赢率对数组进行排序,但以下代码似乎根本没有做任何事情。我无法看到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语句之前和之后显示数组,它们是相同的。

1 个答案:

答案 0 :(得分:2)

compareWinRate对我来说似乎很好。

只需将stats对象分配给数组中的数字索引:

statistics.heroes[0] = { matches: 5, wins: 2 };
statistics.heroes[1] = { matches: 5, wins: 4 };