How’s it going, guys? Hôm nay, chúng ta cùng nhau viết một function để đảo ngược một string như ví dụ sau nhé!
reverseString('abc') //return 'cba' reverseString(' abcd') //return 'dcba ' reverseString('apple')//return 'leppa' reverseString('hello')//return 'olleh' reverseString('Greetings!')//return '!sgniteerG'
Chắc anh em đã hiểu yêu cầu bài toán rồi phải không? Bây giờ bắt đầu code nhé. Nhưng dừng lại một chút, các bạn tự suy nghĩ giải thuật của mình nhé. Hãy tự suy nghĩ trước khi xem đáp án nhé. Nếu các bạn có nhiều giải thuật thì cũng nên thử hết nhé, không có giới hạn cho chúng ta nhé, cùng nhau học tập và chia sẻ nhé. Bài toán giúp chúng ta làm quen với cách để thao tác trên một String trong Javascript. Đây là một dạng dữ liệu đơn giản và chúng ta thường sử dụng khi lập trình web.
Nào cùng practice nhé! Học lập trình thì phải practice thôi, không nghĩ trong đầu nó chạy được là chạy đúng đâu nhé.
Solution 1
Ở cách đầu tiên chúng ta mượn hàm reverse của Array.prototype.reverse
function reverseString(str){ if(!str || typeof str !== 'string'){//input undefined hoặc không phải là một String return ''; } return str.split('').reverse().join(''); }
Solution 2
Chúng ta dùng hàm reduce trong Javascript, xem cách dùng Array.prototype.reduce
function reverseString(str) { return str .split('') .reduce((ret, character) => (character + ret)); }
Solution 3
Chúng ta dùng for of để loop qua từng phần character của string nhé!
function reverseString(str) { let result = ''; if(!str || typeof str !== 'string') { return result; } for(const char of str){ result = char + result ; } return result; }
Why don’t use for in
Because this loop handle some prototypes of object that we don’t need it