Você pode usar o Array.sort
método para classificar a matriz. Uma função de classificação que considera o comprimento da string como o critério de classificação pode ser usada da seguinte maneira:
arr.sort(function(a, b){
// ASC -> a.length - b.length
// DESC -> b.length - a.length
return b.length - a.length;
});
Nota: a classificação ["a", "b", "c"]
pelo comprimento da string não tem garantia de retorno ["a", "b", "c"]
. De acordo com as especificações :
A classificação não é necessariamente estável (ou seja, os elementos que se comparam igual não permanecem necessariamente em sua ordem original).
Se o objetivo é classificar por comprimento, por ordem de dicionário, você deve especificar critérios adicionais:
["c", "a", "b"].sort(function(a, b) {
return a.length - b.length || // sort by length, if equal then
a.localeCompare(b); // sort by dictionary order
});
sort
é bem direto, onde você está tendo dificuldade?