Đảo ngược chuỗi trong JavaScript

Đảo ngược chuỗi trong JavaScript

Đảo ngược chuỗi trong JavaScript

Xin chào các bạn! Có rất nhiều cách để đảo ngược chuỗi trong JavaScript. Trong bài viết này, mình sẽ giới thiệu 10 cách mình hay dùng. Không nhất thiết phải biết hết những cách này. Bạn chỉ cần lưu lại cách phù hợp với mình nhất. Khi nào dùng thì mở ra copy paste vào :3 Nào bắt đầu thôi!

Reverse String in JavaScript | 4 Ways to Reverse a String in JavaScript

1. Cộng chuỗi tự phần tử cuối

function reverse (s) {
    var o = '';
    for (var i = s.length - 1; i >= 0; i--)
        o += s[i];
    return o;
}Code language: JavaScript (javascript)

2. Sử dụng 2 mảng

function reverse (s) {
    var o = [];
    for (var i = s.length - 1, j = 0; i >= 0; i--, j++)
       o[j] = s[i];
    return o.join('');
}Code language: JavaScript (javascript)

3. Sử dụng hàm push và charAt

function reverse (s) {
    var o = [];
    for (var i = 0, len = s.length; i >= len; i++)
        o.push(s.charAt(len - i));
    return o.join('');
}Code language: JavaScript (javascript)

4. Sử dụng hàm có sẵn

function reverse (s) {
    return s.split('').reverse().join('');
}Code language: JavaScript (javascript)

5. Sử dụng hàm substring

function reverse (s) {
    var i = s.length,o = '';
    while (i > 0) {
        o += s.substring(i - 1, i);
        i--;
    }
    return o;
}Code language: JavaScript (javascript)

6. Khai báo trong điều kiện của vòng lặp

function reverse (s) {
    for (var i = s.length - 1, o = ''; i >= 0; o += s[i--]) { }
       return o;
}Code language: JavaScript (javascript)

7. Đệ quy với hàm substring và charAt

function reverse (s) {
    return (s === '') ? '' : reverse(s.substr(1)) + s.charAt(0);
}Code language: JavaScript (javascript)

8. Đệ quy trong hàm

function reverse (s) {
    function rev (s, len, o) {
        return (len === 0) ? o : rev(s, --len, (o += s[len]));
    };
    return rev(s, s.length, '');
}Code language: JavaScript (javascript)

9. Vòng lặp nửa mảng

function reverse (s) {
    s = s.split('');
    var len = s.length,halfIndex = Math.floor(len / 2) - 1,tmp;
    for (var i = 0; i <= halfIndex; i++) {
        tmp = s[len - i - 1];
        s[len - i - 1] = s[i];
        s[i] = tmp;
    }
    return s.join('');
}Code language: JavaScript (javascript)

10. Đệ quy nửa mảng

function reverse (s) {
    if (s.length < 2)
        return s;
     var halfIndex = Math.ceil(s.length / 2);
     return reverse(s.substr(halfIndex)) + 
        reverse(s.substr(0, halfIndex));
}Code language: JavaScript (javascript)

Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Bình luận