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

如何使用linq-to-typescript的orderBy函数正确排序整数类型球衣号

解决linq-to-typescript按球衣号排序出现字符串排序的问题

问题原因

虽然你将shirtNumber定义为number类型,但实际数据可能是字符串类型(比如后端返回、赋值时未正确转换),导致linq-to-typescript的orderBy按字符串字典序排序,出现1、10、11、2...的错误顺序。

解决方案

方案1:排序时显式转换为数值

在orderBy的回调中,将shirtNumber强制转换为number类型后再排序:

return from(this.team.players)
  .orderBy(p => Number(p.shirtNumber))
  .toArray();

方案2:确保数据源的类型正确性

在获取或初始化球员数据时,将shirtNumber转换为number类型,从根源解决问题:

// 示例:处理后端返回的原始数据
this.team.players = rawPlayerData.map(player => ({
  ...player,
  shirtNumber: Number(player.shirtNumber)
}));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 07:35:11