Sắp xếp các từ trong chuỗi
Trong bài này mình sẽ hướng dẫn các bạn sắp xếp các từ trong chuỗi theo khoảng trắng
Mình sẽ áp dụng phương pháp có sẵng nhé
Bắt đầu nào 😉
- Sort từ theo thứ tự giảm
1let nameMy = "Hồ Quang Trí"; 2 3function sortWord(str) { 4 let arrString = str.split(/\s+/g); 5 6 for (let i = 0; i < arrString.length; i++) { 7 let ketQua = arrString[i].split("").sort((a, b) => { 8 if (a < b) { 9 return 1; 10 } else if (a > b) { 11 return -1; 12 } 13 return 0; 14 }); 15 arrString[i] = ketQua.join(""); 16 } 17 // arrString = ['ồH', 'ungaQ', 'írT'] 18 return arrString.join(" "); 19} 20 21console.log(sortWord(nameMy)); // ồH ungaQ írT
- Sort từ theo thứ tự tăng
1let nameMy = "Hồ Quang Trí"; 2 3function sortWord(str) { 4 let arrString = str.split(/\s+/g); 5 6 for (let i = 0; i < arrString.length; i++) { 7 let ketQua = arrString[i].split("").sort((a, b) => { 8 if (a > b) { 9 return 1; 10 } else if (a < b) { 11 return -1; 12 } 13 return 0; 14 }); 15 arrString[i] = ketQua.join(""); 16 } 17 // arrString = ['ồH', 'ungaQ', 'írT'] 18 return arrString.join(" "); 19} 20 21console.log(sortWord(nameMy)); // Hồ Qagnu Trí
Bây giờ chúng ta cùng xem cách hoạt động của nó
Khi chúng ta gọi console.log(sortWord(nameMy)) nó bắt đầu chạy sortWord(nameMy) mà myName ở đây là gì?
Chính là let nameMy = "Hồ Quang Trí" đúng không. Tiếp theo chúng ta tạo biến let arrString và gán giá trị của nó bằng str.split(/\s+/g). str.split(/\s+/g) nghĩa là "Hồ Quang Trí".split(/\s+/g). split(/\s+/g) này là một chức năng. Chức năng đó cần truyền một giá trị là ký tự mình muốn cắt.
/\s+/g có 2 ý nghĩa
- \s+ ở đây có nghĩa là Một hoặc nhiều ký tự khoảng trắng
- g ở đây là global chạy hết chuỗi
Khi chúng ta chạy xong "Hồ Quang Trí".split(/\s+/g) là chúng ta có dc một array ["Hồ", "Quang", "Trí"]
Tiếp đến chúng ta lặp mãng array đó. Cứ mỗi lần lặp chúng ta tạo một biến ketQua và gán giá trị của nó là kết quả chúng ta đả sort theo thứ tự tăng hoặc giảm.
Và bây giờ chúng ta cập nhật lại kết quả đó vào mảng ["Hồ", "Quang", "Trí"] thành ['ồH', 'ungaQ', 'írT'] mà theo cách mình tăng hoặc giảm.
Cuối cùng chúng ta join(" ") nó lại bằng một ký tự
Vậy là chúng ta đã làm xong rồi đó. Tuy không hoàn hảo nhưng đó cũng là một cách.
Giả sử nếu không có khoảng trắng để cắt thì sao. Chúng ta chỉ cần lấy cái chức năng
1string.split("").sort((a, b) => { 2 if (a > b) { 3 return 1; 4 } else if (a < b) { 5 return -1; 6 } 7 return 0; 8})
Bạn chỉ cần thay string ấy thành đầu vào của bạn là xong. Sau đó chúng ta lại join('') rất đơn giản.
Kỷ thuật rất là nhiều thứ
Cũng tùy câu hỏi bài toán mà chúng ta áp dụng các cách khác nhau. Nhưng đối với mình với bài toán này. Cách giải trên cũng là một cách.
😉😉😉😉😉
- Sắp xếp
- từ
- tăng
- giảm
- javascript
- giải thuật
Các bài viết liên quan
Các kiểu dữ liệu trong javascript
Trong tất cả ngôn ngữ lập trình đều có các kiểu dữ liệu. Và trong javascript cũng vậyJavascriptSắp xếp các ký tự trong chuỗi theo thứ tự tăng hoặc giảm
Áp dụng nó với phương pháp có sẵng và tự viết.Giải ThuậtĐếm số lượng các ký tự có trong chuỗi
Giải thuật đếm các ký tự trong chuổi bằng javascriptGiải Thuật