Đảo ngược chuỗi trong JavaScript | Laptrinhcanban.com

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

Hướng dẫn cách đảo ngược chuỗi trong JavaScript. Trong JavaScript tuy không tồn tại phương pháp trực tiếp nào giúp đảo ngược chuỗi cả, nhưng bằng cách kết hợp các phương thức có sẵn với nhau, bạn vẫn có thể thực hiện việc đảo ngược chuỗi trong JavaScript một cách đơn giản.

Chúng ta có 3 phương pháp tiêu biểu để đảo ngược chuỗi trong JavaScript như sau:

  • Đảo ngược chuỗi trong JavaScript bằng tổ hợp liên hoàn các phương thức split, reverse, join
  • Đảo ngược chuỗi trong JavaScript với các ký tự được phân tách bởi dấu phẩy
  • Đảo ngược chuỗi trong JavaScript bằng vòng lặp

Chúng ta sẽ cùng tìm hiểu các phương pháp này ở dưới đây:

Đảo ngược chuỗi trong JavaScript (split, reverse, join)

Trong JavaScript không tồn tại phương thức hay hàm nào giúp chúng ta trực tiếp đảo ngược một chuỗi cả. Tuy nhiên bằng cách sử dụng kết hợp một số các phương thức với nhau, chúng ta có thể hoàn thành được việc này.

Điển hình trong số đó là phương thức reverse(). Phương thức reverse() vốn được sử dụng để đảo ngược mảng (array) trong JavaScript. Do không thể sử dụng phương thức này trực tiếp với chuỗi được, nên để đảo ngược chuỗi ban đầu, chúng ta cần chuyển chuỗi sang mảng, sau đó đảo ngược mảng thu được trước khi chuyển lại mảng đó về dạng chuỗi.

Chúng ta có nhiều cách để thực hiện xử lý ở trên, và thông dụng nhất là sử dụng tổ hợp liên hoàn các phương thức split, reverse và join với cú pháp sau:

string.split('').reverse().join('');

Ví dụ, chúng ta đảo ngược chuỗi trong JavaScript bằng cách sử dụng tổ hợp liên hoàn trên như sau:

let org_str = 'aiueo';
let reverse_str = org_str.split('').reverse().join('');
console.log(reverse_str);
//> oeuia

Để dễ hiểu hơn, chúng ta có thể chia xử lý ra thành các bước nhỏ như sau:

let org_str = 'aiueo';
console.log(org_str);
//> aiueo

//Dùng split('') để chuyển chuỗi ban đầu thành mảng
let l = org_str.split('');
console.log(l);
//> [ 'a', 'i', 'u', 'e', 'o' ]

//Dùng reverse() để đảo ngược mảng
l_reverse = l.reverse();
console.log(l_reverse);
//> [ 'o', 'e', 'u', 'i', 'a' ]

//Dùng join('') để chuyển mảng kết quả về dạng chuỗi
str_reverse = l_reverse.join('');
console.log(str_reverse);
//> oeuia

Đảo ngược chuỗi trong JavaScript với các ký tự được phân tách bởi dấu phẩy

Tương tự với cách ở trên, chúng ta cũng chuyển chuỗi ban đầu sang array, sau đó đảo ngược array thu được trước khi chuyển lại array đó về dạng chuỗi để đảo ngược chuỗi ban đầu.

Tuy nhiên trong bước chuyển ngược lại array về chuỗi, thay vì dùng phương thức join() thì chúng ta sẽ dùng phương thức toString(), với cú pháp sau đây:

string.split('').reverse().toString();

Do phương thức toString() sẽ chuyển mảng về dạng chuỗi với các phần tử trong chuỗi đó được phân tách bởi dấu phẩy , nên trong chuỗi kết quả trả về thì ký tự trong đó được cách nhau bởi một dấu phẩy.

Ví dụ, chúng ta đảo ngược chuỗi trong JavaScript bằng cách sử dụng tổ hợp liên hoàn trên như sau:

let org_str = 'aiueo';
let reverse_str_with_comma = org_str.split('').reverse().toString();
console.log(reverse_str_with_comma);
//> o,e,u,i,a

Nếu bạn không muốn có dấu phẩy trong kết quả, chỉ đơn giản xóa nó đi bằng cách sử dụng thêm phương thức replace() là xong.

let org_str = 'aiueo';
let reverse_str = org_str.split('').reverse().toString().replace(/,/g, '');
console.log(reverse_str);
//> oeuia

Đảo ngược chuỗi trong JavaScript bằng vòng lặp

Một phương pháp khác mà chúng ta có thể sử dụng để đảo ngược chuỗi trong JavaScript đó chính là sử dụng tới vòng lặp. Ý tưởng ở đây rất đơn giản, chúng ta sẽ chuẩn bị một chuỗi mới, sau đó tiến hành một vòng lặp để lấy ra lần lượt các ký tự từ cuối lên đầu trong chuỗi ban đầu, và lưu chúng lại trong chuỗi đã chuẩn bị.

Ví dụ cụ thể, chúng ta viết:

let org_str = 'aiueo';
let reverse_str = '';

for (let i= org_str.length -1; i >= 0; i--){
reverse_str += org_str[i];
}

console.log(reverse_str);

//> oeuia

Đây là phương pháp khá là “thủ công” nếu so sánh với 2 phương pháp ở trên, và số dòng code trong chương trình cũng khá là nhiều nữa. Tuy nhiên trong trường hợp chúng ta quên mất các phương thức có sẵn trong JavaScript ở trên thì đây cũng là một biện pháp cứu cánh khá là hữu ích.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn các cách đảo ngược chuỗi trong JavaScript rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về JavaScript trong các bài học tiếp theo.

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.