[
{ name: 'alex', id: '1'},
{ name: 'bob', id: '2' },
{ name: 'kat', id: '3' },
{ name: 'jess', id: '4'},
]
4 Réponses :
Voici un code qui le ferait:
var i, d = {}, result = [];
for(i=0; i<friends.length; ++i)
{
d[friends[i].id] = friends[i];
}
for(i=0; i<real_order.length; ++i)
{
result.push(d[real_order[i]]);
}
Trop rapide, la même solution que j'avais proposée
Assurez-vous que real_order code> est dans la portée globale et cela devrait le faire: friends.sort(function(a, b) {
if (real_order.indexOf(a.id) > real_order.indexOf(b.id)) {
return 1;
}else{
return -1;
}
});
une solution de commande. Ugly comme jQuery, mais des gens comme John Resig adorent ce style pour une raison quelconque :)
Je suis à peu près sûr que c'est plus efficace en JavaScript
Les tableaux peuvent être triés à l'aide de votre propre algorithme de tri personnalisé, vous n'avez donc pas besoin de real_order code>. C'est la façon dont je le ferais ( EDIT STRY>: Ajout du délégué de tri pour le tri décroissant):