This question already has answers here:
JavaScript move an item of an array to the front
(16个答案)
在8个月前关闭。
我期望下一个代码片段将所有内容保留在索引中,但将特定项目放在最前面:
在我仅使用第一个元素的情况下(不作比较),请注意第一个元素是否为
它在Chrome上运行良好,但是Firefox以某种方式保留了原来的一切。或者,如果我执行
我究竟做错了什么?
(16个答案)
在8个月前关闭。
我期望下一个代码片段将所有内容保留在索引中,但将特定项目放在最前面:
const sorted = ["AUS", "GBR", "GER", "USA", "ZAF"].sort(code => code === "GBR" ? -1 : 0);
console.log(sorted);
在我仅使用第一个元素的情况下(不作比较),请注意第一个元素是否为
GBR
,将其放在最前面,否则,请使其停留在当前位置。它在Chrome上运行良好,但是Firefox以某种方式保留了原来的一切。或者,如果我执行
? -1 : 1
,它会将GBR
放在最前面,但会颠倒其余项目的顺序。我究竟做错了什么?
最佳答案
正如deceze在评论中所说:sort
回调必须接受两个参数。您只看第一个参数。如果将“ GBR”作为第二个参数传递,则不会对其进行检查,并且对于所有意图和目的,结果都是随机的。
您只需要看一下第二个参数:
const sorted = ["AUS", "GBR", "GER", "USA", "ZAF"].sort((c1, c2) => c1 === "GBR" ? -1 : c2 === "GBR" ? 1 : 0);
console.log(sorted);
关于javascript - Firefox对数组排序错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58076924/
10-11 14:19