按值排序对象

Mat*_*ddy 0 javascript sorting

我可以想象这已被问过几次,但我确实无法找到解决我想弄清楚的具体问题的例子.

所以我有一个对象,如下:

var collection = [{ id: 0 }, { id: 1 }, { id: 2 }];
Run Code Online (Sandbox Code Playgroud)

然后我有一个数组,这是'顺序',就像这样:

var order = [2, 0, 1];
Run Code Online (Sandbox Code Playgroud)

我想使用'order'数组按特定顺序重新排序集合.我一直在用.sort函数尝试很多解决方案,但我找不到合适的解决方案.任何人都可以开导我吗?可能很简单,我希望.

小智 5

您可以使用该sort()方法来完成此操作indexOf:

collection.sort(function(a, b){
    return order.indexOf(a.id) > order.indexOf(b.id);
});
Run Code Online (Sandbox Code Playgroud)