Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript compare()-方法在Chrome上的行为很奇怪,为什么?_Javascript_Arrays_Google Chrome_Sorting_Jquery Ui Sortable - Fatal编程技术网

Javascript compare()-方法在Chrome上的行为很奇怪,为什么?

Javascript compare()-方法在Chrome上的行为很奇怪,为什么?,javascript,arrays,google-chrome,sorting,jquery-ui-sortable,Javascript,Arrays,Google Chrome,Sorting,Jquery Ui Sortable,我只是不知道为什么我的排序算法在Safari和Firefox上运行良好,但在Chrome上却不行 我试图做的是,根据项目类型属性在sortingOrder数组中的顺序对项目(a和b)进行排序。此外,在给定项目类型的每组项目中,可见项目应排在第一位,不可见项目应排在后面 条目类型的排序在任何地方都很好,但是Chrome总是混淆可见和不可见的条目 有人知道为什么吗 很长一段时间都没有感觉到 SomeClass.prototype.sortItems = function () { var

我只是不知道为什么我的排序算法在Safari和Firefox上运行良好,但在Chrome上却不行

我试图做的是,根据项目类型属性在sortingOrder数组中的顺序对项目(a和b)进行排序。此外,在给定项目类型的每组项目中,可见项目应排在第一位,不可见项目应排在后面

条目类型的排序在任何地方都很好,但是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);
};

有一个你的物品不起作用的例子吗?哦,对不起,我可能应该说我使用的是Phaser游戏引擎。项是扩展Phaser.Image的类的实例。它们确实有“visible”和“itemType”属性,我已经将它们记录在该方法中,以确保它们设置正确。请尝试运行一个小示例和控制台日志a、b,以及您将在compare方法中返回的内容,以检查它是否真正返回了它应该返回的内容