Javascript Array.prototype.sort()返回错误的顺序
我想用对象对数组进行排序。退回的订单是错误的 $document.ready=>{ 常量级别=[ 新阶段5,23, 新阶段6,25, 新阶段29、27、, 新阶段36、33、, 新阶段21、37、, 新阶段34、51、, 新阶段37、54、, 新阶段30、58、, 新阶段12、68、, 新阶段38、70、, 新阶段10,47 ]; level.sorta,b=>a.positionJavascript Array.prototype.sort()返回错误的顺序,javascript,Javascript,我想用对象对数组进行排序。退回的订单是错误的 $document.ready=>{ 常量级别=[ 新阶段5,23, 新阶段6,25, 新阶段29、27、, 新阶段36、33、, 新阶段21、37、, 新阶段34、51、, 新阶段37、54、, 新阶段30、58、, 新阶段12、68、, 新阶段38、70、, 新阶段10,47 ]; level.sorta,b=>a.position1,false=>0,然后根据上述规则使用。根据浏览器实现的排序算法,规范和精确输入数据中未定义精确算法,这可能在
您的分拣条件不正确。使用a.position-b.position这是因为排序希望返回一个数字值,而不是布尔值 $document.ready=>{ 常量级别=[ 新阶段5,23, 新阶段6,25, 新阶段29、27、, 新阶段36、33、, 新阶段21、37、, 新阶段34、51、, 新阶段37、54、, 新阶段30、58、, 新阶段12、68、, 新阶段38、70、, 新阶段10,47 ]; level.sorta,b=>a.position-b.position; 控制台。日志级别; }; 功能StagestageId,stagePosition{ this.id=stageId; 这个位置=阶段位置; }
sort需要的是数字返回类型,而不是布尔类型,因为他知道它是有效的。不知何故,这总是有效的。他在问为什么。@cool。谢谢兄弟的建议这种问题经常出现。你知道一个规范的答案吗?@NinaScholz-不,如果我知道,我会投票关闭。这个问题与通常的问题略有不同,虽然通常的答案是好的,但无论如何都会回答。但我正在看…:-@NinaScholz——找到了一个更准确的好答案,一个有着可靠答案的好答案,但我不会称之为经典。也许我们可以让它成为一个新的规范-昨天我遇到了一个类似的问题,关于使用比较结果和edge是否排序不正确的问题。
level.sort((a, b) => a.position - b.position);