在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]; }