【问题标题】:javascript array sorting - not working as expectedjavascript数组排序 - 没有按预期工作
【发布时间】:2021-08-26 19:34:41
【问题描述】:

我有一个简单的数组需要排序,但由于某种原因排序功能不起作用。

简而言之,我要根据“weeks_won”按 DESC 顺序对数组进行排序。我正在使用下面的代码:

players.sort(function(a, b){ return b.weeks_won - a.weeks_won});

输入数组是(取自console.log):

0 {player_name: "Chuck-Norris", weeks_won: 2, correct_picks: 21, total_picks: 32, pick_ratio: 66}
1 {player_name: "Grasslb", weeks_won: 0, correct_picks: 7, total_picks: 11, pick_ratio: 64}
2 {player_name: "JackSparrow", weeks_won: 0, correct_picks: 15, total_picks: 32, pick_ratio: 47}
3 {player_name: "tech-guy-schneider", weeks_won: 0, correct_picks: 12, total_picks: 27, pick_ratio: 44}

【问题讨论】:

  • 输入已按weeks_won 降序排序。你期望发生什么?
  • 好的 - 你说得对,数组是预先排序的(我不喜欢使用那个确切的数据集作为例子),但是如果 week_won 没有预先排序,它就不起作用。
  • 您可以edit您的帖子来演示一些不起作用的数据,因为您发布的代码看起来应该可以工作。

标签: javascript arrays sorting


【解决方案1】:

它工作正常。请尝试运行 sn-p。

const players = [
  {player_name: "Chuck-Norris", weeks_won: 2, correct_picks: 21, total_picks: 32, pick_ratio: 66},
  {player_name: "Grasslb", weeks_won: 0, correct_picks: 7, total_picks: 11, pick_ratio: 64},
  {player_name: "JackSparrow", weeks_won: 0, correct_picks: 15, total_picks: 32, pick_ratio: 47},
  {player_name: "tech-guy-schneider", weeks_won: 0, correct_picks: 12, total_picks: 27, pick_ratio: 44}];

players.sort(function(a, b){ return b.weeks_won - a.weeks_won});

console.log(players);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多