Javascript 对小数组进行多次排序
我正在尝试像这样对小数组进行排序Javascript 对小数组进行多次排序,javascript,algorithm,array-algorithms,Javascript,Algorithm,Array Algorithms,我正在尝试像这样对小数组进行排序 var arr=[{x:1,y:2,z:1},{x:3,y:5,z:2},{x:8,y:3,z:6}]; 它包含3个顶点 我想做的是从更高的y坐标对它进行排序 我可以这样定义 arr.sort(function(a,b){return b.y-a.y}); 但是我应该一次做大约10000次,然后用requestAnimationFrame(func)重复它。 我想会有更快的办法。 有人知道如何加快速度吗?是的,您应该调用内置的排序函数。它可能是用一种比Jav
var arr=[{x:1,y:2,z:1},{x:3,y:5,z:2},{x:8,y:3,z:6}];
它包含3个顶点
我想做的是从更高的y坐标对它进行排序
我可以这样定义
arr.sort(function(a,b){return b.y-a.y});
但是我应该一次做大约10000次,然后用requestAnimationFrame(func)重复它代码>。
我想会有更快的办法。
有人知道如何加快速度吗?是的,您应该调用内置的排序函数。它可能是用一种比JavaScript更快的语言编写的,并且应该得到很好的优化
即使对于小数组,您也可能无法通过自己编写来做得更好。谢谢。我以前试过,但是。。也许这对我的exynos来说太难了。可能有一种方法可以避免在每个动画帧上对数组进行排序,但我们需要更多的上下文(和代码)来帮助。b.y-a.y
通常不是比较的好主意,因为它可能会导致错误的答案。要了解原因,请阅读@Jim Mischel感谢您的回复!但是我不需要计算那个庞大的数字。尽管如此,用减法代替真实的比较是一个很坏的习惯。总有一天你会写出来的,它会很好用的。然后,六个月或六年后,您的程序开始返回奇怪的结果,因为条件发生了变化:您的程序呈现了大量数据。根据经验,我会告诉你,这个错误非常难以追踪,当你不得不向同事和老板解释时,你会看起来像个傻瓜。@Jim Mischel比较比减法快吗?