Este equipo de expertos despúes de algunos días de investigación y de recopilar de datos, hemos dado con la respuesta, deseamos que te sea de utilidad para tu plan.
Solución:
Algo como un:
function predicateBy(prop)
return function(a,b)
if (a[prop] > b[prop])
return 1;
else if(a[prop] < b[prop])
return -1;
return 0;
//Usage
yourArray.sort( predicateBy("age") );
yourArray.sort( predicateBy("name") );
Puede ordenar matrices por cualquier campo con la biblioteca Alasql:
var data = ["name":"John", "age":"16", "name":"Charles", "age":"26"];
var res1 = alasql('SELECT * FROM ? ORDER BY name',[data]);
var res2 = alasql('SELECT * FROM ? ORDER BY age',[data]);
var res3 = alasql('SELECT * FROM ? ORDER BY age, name',[data]);
var res4 = alasql('SELECT * FROM ? ORDER BY age DESC, name ASC',[data]);
Pruebe este ejemplo en jsFiddle.
Vea este ejemplo http://jsfiddle.net/W8Byu/1/
Lo que he hecho es almacenar el nombre de la columna de clasificación en una variable y usarlo en la función de clasificación.
var sortColumnName = "Name";
function SortByName(x,y)
return ((x[sortColumnName] == y[sortColumnName]) ? 0 : ((x[sortColumnName]> y[sortColumnName]) ? 1 : -1 ));
Comentarios y valoraciones
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)