Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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 对小数组进行多次排序_Javascript_Algorithm_Array Algorithms - Fatal编程技术网

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比较比减法快吗?