根据另一个数组对数组进行排序

时间:2011-08-04 09:32:20

标签: javascript sorting

我有两个数组,主要包含300个值:

var main = [ 182, 928, 192, 111, 493, 1100, 3 ] ..

辅助包含10个值,但每个值都是一个数组:

var secondary = [{"id" : 3, "category" : "animals"}, {"id" : 111, "category" : "water"}] ..

我的问题是如何根据 secondary array 中的值对其ID进行排序 main array

2 个答案:

答案 0 :(得分:4)

如果按照提到的方式构造第二个数组,则可以使用以下代码。 该解决方案使用indexOf,可能并非在所有浏览器中都存在。 Mozilla为indexOf here提供了一个实现。

var main = [ 182, 928, 192, 111, 493, 1100, 3 ];
var secondary = [{"id" : 3, "category" : "animals"}, {"id" : 111, "category" : "water"}];

secondary.sort(function(a, b) {
    return main.indexOf(a["id"]) - main.indexOf(b["id"]);
});

答案 1 :(得分:0)