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