1
我有两个阵列这样的:排序对象的阵列根据另一个阵列
objects = [Obj1, Obj2, Obj3];
scores = [10,200,15];
与对象对应于其得分,成绩的[I] [i]中。
我需要根据它们的相对分数降序排列对象数组。
任何想法如何在jQuery/JavaScript中有效地做到这一点? 谢谢你的帮助!
我有两个阵列这样的:排序对象的阵列根据另一个阵列
objects = [Obj1, Obj2, Obj3];
scores = [10,200,15];
与对象对应于其得分,成绩的[I] [i]中。
我需要根据它们的相对分数降序排列对象数组。
任何想法如何在jQuery/JavaScript中有效地做到这一点? 谢谢你的帮助!
由于@Rory McCrossan暗示,可能是最好的办法就是加入值加在一起,然后如果需要的话他们后来分开:
// produces [{score: 10, value: Obj1},
// {score: 200, value: Obj2},
// {score: 15, value: Obj3}]
var joined = objects.map(function (el, i) {
return { score: scores[i], value: el };
});
// rearranges joined array to:
// [{score: 200, value: Obj2},
// {score: 15, value: Obj3},
// {score: 10, value: Obj1}]
joined.sort(function (l, r) { return r.score - l.score; });
// produces [Obj2, Obj3, Obj1]
var sorted = joined.map(function (el) { return el.value; });
谢谢,作品完美无瑕! – MPikkle
它可能会更好地将它们连接在一起作为一个单一的对象,然后排序他们。 –
你还想要排序分数吗? – theonlygusti
将分数保持为它所属对象的属性不是更容易吗? – adeneo