我有两个数组,主要包含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
?
答案 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)