You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于指定分值对数组排序 提取游戏排行榜前10名用户数据

实现方案

核心逻辑

你可以组合使用JS数组的sort()排序方法和slice()截取方法实现需求:

  • 用sort()传入自定义比较函数实现按分数降序排列(分数高的排在前面,符合排行榜逻辑)
  • 用slice(0,10)截取排序后的前10条,数组长度不足10时会自动返回全部有效数据,无需额外判断长度

示例代码(适配你给出的测试数组)

// 原始测试数据
const userList = [
  {
    name: "user1",
    image: "image",
    score: 10
  },
  {
    name: "user2",
    image: "image",
    score: 167
  },
  {
    name: "user3",
    image: "image",
    score: 1
  },
  {
    name: "user4",
    image: "image",
    score: 102
  },
  {
    name: "user5",
    image: "image",
    score: 12
  }
]

// 排序+取前10的核心代码
const top10Users = userList
  .sort((a, b) => b.score - a.score)
  .slice(0, 10)

console.log(top10Users)

适配正式数据库字段版本

如果你的正式数据库字段为UserName/UserImage/UserScore,修改比较函数的对应字段即可:

const top10Users = 数据库返回的用户数组
  .sort((a, b) => b.UserScore - a.UserScore)
  .slice(0, 10)

运行效果说明

用你给出的测试数据运行后,返回的排序结果会按分数从高到低排列:

  1. user2(167分)
  2. user4(102分)
  3. user5(12分)
  4. user1(10分)
  5. user3(1分)
    总数据量不足10条时会全部返回,超过10条时自动只保留前10名。

内容的提问来源于stack exchange,提问作者A47

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:24:02