Chúng ta cần viết một hàm JavaScript nhận vào một câu làm đối số đầu tiên và duy nhất.
Một câu là một loại đặc biệt của chuỗi ký tự được nối bởi một số hữu hạn khoảng trắng.
Hàm nên sắp xếp lại các từ của câu sao cho từ nhỏ nhất (từ có ít ký tự nhất) xuất hiện trước và sau đó là các từ lớn hơn.
Ví dụ:
Nếu chuỗi đầu vào là:
const str = 'this is a string';
Thì đầu ra nên là:
const output = 'a is this string';
Ví dụ
Dưới đây là mã nguồn:
const str = 'this is a string'; const arrangeWords = (str = []) => { const data = str.toLowerCase().split(' ').map((val, i)=> { return { str: val, length: val.length, index: i } }) data.sort((a,b) => { if (a.length === b.length) return (a.index - b.index) return (a.length - b.length) }); let res = ''; let i = 0; while (i < data.length - 1) res += (data[i++].str + ' '); res += data[i].str; return (res) }; console.log(arrangeWords(str));Kết quả
Đầu ra trên console:
a is this string
Lưu ý: Code chuyển lowercase toàn bộ chuỗi trước khi sort. Nếu muốn giữ nguyên case: bỏ .toLowerCase(). Stable sort giữ thứ tự gốc cho từ cùng độ dài.