compare() - 方法在Chrome上表现得很奇怪,为什么?

时间:2017-05-18 14:28:27

标签: javascript arrays google-chrome sorting jquery-ui-sortable

我只是不知道为什么我的排序算法在Safari和Firefox上正常工作,但在Chrome上却没有。

我要做的是,根据sortingOrder数组中itemType属性的顺序对项目(a和b)进行排序。此外,在给定itemType的每组项目中,可见项目应该首先出现,后面是不可见项目。

itemTypes的排序在任何地方都可以正常工作,但Chrome总是混合可见和不可见的项目。

有人知道为什么吗?

不觉得卡住了很长时间..

SomeClass.prototype.sortItems = function () 
{
    var self = this;
    this.items.sort(function(a, b) { return self.compare(a, b); });
};

SomeClass.prototype.compare = function (a, b) 
{
    if (a.itemType == b.itemType)
        return (!a.visible && b.visible)? 1 : (a.visible && !b.visible)? -1 : 0;
    else
        return this.sortingOrder.indexOf(a.itemType) - this.sortingOrder.indexOf(b.itemType);
};

0 个答案:

没有答案