Nội dung bài viết
Video học lập trình mỗi ngày
Sự khác biệt về kinh nghiệm trong lập trình javascript Mở đầu Trong thực tế cùng nhiều kết quả nhưng lại có nhiều phương pháp giải quyết khác nhau. Nhưng vấn đề ở chỗ ai được trả lương cao hơn, và vì sao họ luôn luôn được lựa chọn cho sự tin tuỏng.
Và đây là một bài viết về tính hiệu quả của các devjs lõi làng.
Yêu cầu bài toán:
Cho một chuỗi hãy trả về chuỗi trên với hai điều kiện. Giống như tiêu đề một bài báo.
1 - Chữ cái đầu tiên của mỗi từ đều viết hoa.
2 - Hãy chắc chắn rằng phần còn lại của từ này là chữ thường.
Tôi là một lập trình viên javascript -> Tôi Là Một Lập Trình Viên Javascript
or
TÔI LÀ MỘT LẬP TRÌNH VIÊN JAVASCRIPT -> Tôi Là Một Lập Trình Viên Javascript
Đó là một bài toán đơn giản, và hãy xem các thuật toán đưa ra thế nào và hay xem 3 cách devjs hay xem cách giải quyết vấn đề như thế nào?
Code 1 (Lập trình cơ bản)
function titleCase(str) { // Đưa về hết chữ thường let lowerCaseString = str.toLowerCase() // "tôi là một lập trình viên javascript" // Đưa về array let splitString = lowerCaseString.split(' ') // ["tôi", 'là', 'một', 'lập', ...] //biển đổi array thành viết hoa với ký tự đầu tiên let titleCaseArray = splitString.map((word) => { return word[0].toUpperCase() + word.slice(1) }) //["Tôi", 'Là', 'Một', 'Lập', ...] // Nối lại với nhau let titleCaseSentence = titleCaseArray.join(' ') // "Tôi Là Một Lập Trình Viên Javascript" // return return titleCaseSentence } titleCase("Tôi là một lập trình viên javascript"); // Tôi Là Một Lập Trình Viên Javascript
Code 2 (Lập trình nâng cao, có phẩm chất và đã code dạo nhiều :D)
function titleCase(str) { return str.toLowerCase().split(' ').map((word) => { return word[0].toUpperCase() + word.slice(1) }).join(' ') } titleCase("I'm a little tea pot");
Code 3 (Nhiều kinh nghiệm chiến trường xương máu :D)
Chú ý chú ý! Regex không phải là giải pháp tốt nhất cho người mới bắt đầu. Các biểu thức chính quy rất khó theo cách riêng của chúng và độ phức tạp của chúng là điểm chung cho nhiều developer có rất nhiều kinh nghiệm. Nhưng tôi khuyên đừng có sợ mà từ bỏ or không tìm hiểu gì về chúng. Sau này bạn trở thành một dev có nhiều kinh nghiệm thì regex sẽ là người bạn tuyệt vời của bạn.
function titleCase(str) { return str.toLowerCase().replace(/(^|\s)\S/g, (firstLetter) => firstLetter.toUpperCase()); } titleCase("I'm a little tea pot");
Kết luận: Nếu bạn là một devjs tâm huyết và có những giải pháp nào hay hơn và hiệu quả hơn. Vui lòng share dưới comment giúp tôi.
Tôi xin cảm ơn!
Ref: https://medium.freecodecamp.org/three-ways-to-title-case-a-sentence-in-javascript-676a9175eb27