gpt4 book ai didi

javascript - 如何将 dojo dgrid 排序为 float 而不是字符串

转载 作者:行者123 更新时间:2023-12-03 09:54:06 27 4
gpt4 key购买 nike

在 dojo dgrid 中,我有一列想要排序的 float 。我在 SitePen 的 Ken Franqueiro 那里找到了有关排序的示例说明,网址为 https://github.com/SitePen/dgrid/issues/276

    grid.set("sort", function(a,b) {
if(a.col5 > b.col5) { return 1; }
if(a.col5 < b.col5) { return -1 }
return 0;
});

由于我想将它们排序为 float ,因此我进行了此更改。

    grid.set("sort", function(a,b) {
var first = parseFloat(a.col5);
var second = parseFloat(b.col5);
if (first > second) { return 1; }
if (first < second) { return -1 }
return 0;
});

但是,它仍然将它们作为字符串进行排序,结果如下:-0.11-7.150.121.2510.92.02

我实际上不确定它是否调用了我的函数; dojo 并不总是允许在类似代码中使用断点。因此,我更改了它并创建了一个函数,compareMyFloats(a,b) 与比较器代码,并从我的 grid.set 代码中调用它。我无法在函数的断点处停止。

因此,对列中的 float 进行排序的正确方法是什么?

最佳答案

您所描述的totally seems to work for me .

如果您的数据应该被视为数字,那么我理想情况下建议首先将其输出为数字,而不是字符串。

同时,RE“Dojo 并不总是允许断点”,我唯一能想到的可能是针对缩小版本的 Dojo 运行,但所有最新版本的 Dojo 都支持源映射,这应该仍然允许您在浏览器的开发人员工具中查看未缩小的代码和断点。

我链接的 fiddle 使用的内容与原始帖子中的内容几乎完全相同,但是我一直在催促我提供内联代码来配合 JSFiddle,所以就在这里。

var grid = new OnDemandGrid({
columns: {
id: 'ID',
value: 'Value'
},
collection: new Memory({ data: [
{ id: 1, value: '-0.11' },
{ id: 2, value: '-7.15' },
{ id: 3, value: '0.12' },
{ id: 4, value: '1.25' },
{ id: 5, value: '10.9' },
{ id: 6, value: '2.02' }
] }),
sort: function (a, b) {
var first = parseFloat(a.value);
var second = parseFloat(b.value);
if (first > second) {
return 1;
}
if (first < second) {
return -1;
}
return 0;
}
}, 'grid');

关于javascript - 如何将 dojo dgrid 排序为 float 而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30791751/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com