在Javascript中,我需要根据类型对数组中的对象进行排序。每种类型都有更高的优先级,因此类型为“wipe”的对象应具有最高优先级,因此应位于array(index = 0)的最前面。

排序这些对象的最佳方法是什么?有内置的功能可以做到这一点吗?

例如:

function sortObjects( objs )
{
   // objs is an unsorted array of objects
   var animPriority = {"wipe": 1, "fly": 2, "iris": 3, "flip": 4, "cube": 5, "blur": 6, "zoom": 7, "fade": 8, "glow": 9, "rotate": 10};

   for (var i=0; i<objs.length; i++)
       if (objs[i].type == "wipe")
          // bubblesort/bubbleswap element in objs[0] with objs[i]????
          // a bubble sort doesn't seem efficient though?
}

最佳答案

JavaScript的array.sort方法需要一个compare函数,只需传递此函数即可:

function compareFunc(a,b) { return animPriority[a.type] - animPriority[b.type]; }

10-06 05:50