我有一个按字段分组的网格,让我们说这个组是‘团队’。然后球队中的所有球员都有一个号码和其他字段,如姓名、合同开始日期和结束日期。
在球队中,我可以按球员的名字和日期按字母顺序排序。排序工作在那些字段上。
问题是,当我尝试按播放器编号排序时,它按以下方式排序。
假设我们有1到30名球员。
我的网格中的提升顺序将是:
1 10 11 12 13 14 15 16 17 18 19 2 20 21 etc.显然,出于某种原因,它只比较第一个数字,但在青少年之间,它知道哪个数字是第一位(?)
我希望这些数字按逻辑上升的顺序排列:
1 2 3 4 5 6 7 8 9 10 11 12 ... 20 21 22 ... 29 30我在网格中使用ExtJS 3.3.1分组视图。网格存储的数据来自java对象,所有字段都是字符串。
谢谢!
发布于 2014-12-03 04:46:14
字符串在js中总是这样排序的。尝试控制台中的"2" > "10"。您必须在模型或存储上使用数字类型字段。如下所示:
fields: [
{name: '...', type: 'int'}
]在执行数组排序函数时,首先使用parseInt(...)将其转换为数字。
https://stackoverflow.com/questions/27252687
复制相似问题