Ви можете використовувати Array.sort
метод для сортування масиву. Функцію сортування, яка розглядає довжину рядка як критерій сортування, можна використовувати наступним чином:
arr.sort(function(a, b){
// ASC -> a.length - b.length
// DESC -> b.length - a.length
return b.length - a.length;
});
Примітка: сортування ["a", "b", "c"]
за довжиною рядка не гарантує повернення ["a", "b", "c"]
. Відповідно до специфікацій :
Сортування не обов'язково стабільне (тобто елементи, що порівнюють рівні, не обов'язково залишаються у своєму початковому порядку).
Якщо метою є сортування за довжиною, то за порядком словника потрібно вказати додаткові критерії:
["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
досить прямо вперед, де у вас виникають труднощі?