首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么ExtJS排序函数必须返回-1/0/1

为什么ExtJS排序函数必须返回-1/0/1
EN

Stack Overflow用户
提问于 2021-09-27 16:50:15
回答 1查看 46关注 0票数 0

Ext.util.Sorter.sorterFn返回值限制为-1/0/1。我还发现在源代码的注释中提到了这种期望。

为什么不直接返回any negative number/0/any positive number

我并不是在问为什么有一个可以方便地返回-1/0/1的比较器很好。

我在问,为什么框架的作者决定限制我们使用-1/0/1,尽管JS本身在其比较器回调中允许使用any negative number/0/any positive number

EN

回答 1

Stack Overflow用户

发布于 2021-09-28 11:04:41

基本上,您可以使用任何数字,只要它们具有顺序,如-1/0/1或-12/0/200。

下面是一个示例:

代码语言:javascript
运行
复制
            sorters: [{
                sorterFn: function(person1, person2) {
                    let lhs = person1.data.name,
                        rhs = person2.data.name;

                    return (lhs > rhs) ? 200 : (lhs === rhs ? 0 : -12);
                }
            }],

这里是小提琴,它显示结果Fiddle

!!!首先,您可能需要考虑来自PeterKoltai和aaandri98的评论!

此外-为了保持代码对每个人(现在和将来)的可读性,您可能希望使用静态数字,即-1/0/1。

规则是:一个必须是负的,一个是正的,因为Ext.Array.binarySearch中的部分

代码语言:javascript
运行
复制
if (comparison >= 0) {
    begin = middle + 1;
} else if (comparison < 0) {
    end = middle - 1;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69350439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档