Dựa trên câu trả lời của Salman, tôi đã viết một hàm nhỏ để đóng gói nó:
function sortArrayByLength(arr, ascYN) {
arr.sort(function (a, b) { // sort array by length of text
if (ascYN) return a.length - b.length; // ASC -> a - b
else return b.length - a.length; // DESC -> b - a
});
}
sau đó chỉ cần gọi nó với
sortArrayByLength(myArray, true);
Lưu ý rằng không may, các chức năng có thể/không nên được thêm vào nguyên mẫu Array, như được giải thích trên this page.
Ngoài ra, nó đã sửa đổi mảng được truyền dưới dạng tham số và không trả về bất kỳ thứ gì. Điều này sẽ buộc nhân bản của mảng và sẽ không được tuyệt vời cho mảng lớn. Nếu ai đó có một ý tưởng tốt hơn, xin vui lòng bình luận!
[ 'sort'] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/sort) là khá thẳng về phía trước, có thì bạn gặp khó khăn? –
@muistooshort cũng sắp xếp mặc định() sắp xếp các chuỗi chữ cái, anh ấy đang tìm kiếm phân loại string.length như có thể thấy trong câu trả lời đã chọn :) –