Làm thế nào để bạn đảo ngược các chữ cái trong javascript?

Đảo ngược chuỗi thực sự là một trong những hoạt động phổ biến và cần thiết nhất trong JavaScript. Trong hành trình sự nghiệp của bất kỳ Nhà phát triển phần mềm nào, một câu hỏi cơ bản và rất quan trọng cho các cuộc phỏng vấn là "Làm thế nào để đảo ngược một chuỗi trong JavaScript"

Có một số cách để đảo ngược chuỗi trong JavaScript. Chúng ta có thể sử dụng vòng lặp, hàm dựng sẵn, đệ quy và thậm chí cả biểu thức chính quy để giải quyết vấn đề. Trong bài đăng này, tôi sẽ chỉ ra những cách tiếp cận này với các ví dụ. Vậy hãy bắt đầu

🔶phương pháp tích hợp. tách ra(). đảo ngược(). tham gia()

Cách đầu tiên mà tôi muốn thảo luận có lẽ là cách được sử dụng phổ biến nhất, đó là sử dụng các phương thức có sẵn. Trước hết, chúng ta cần chia chuỗi thành Mảng các ký tự đơn i. e. ("s","t","r","i","n","g"), sau đó đảo ngược các ký tự và cuối cùng nối chúng lại để tạo chuỗi đảo ngược.
Hãy xem một ví dụ trước.

Làm thế nào để bạn đảo ngược các chữ cái trong javascript?

Trong ví dụ này, về cơ bản có ba phương thức tích hợp được sử dụng. họ đang.


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
9,

const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
0 &

const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
1. Để hiểu nó đúng cách, tôi đang giải thích nó một cách tỉ mỉ

🔸 Phương thức


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
9 tách đối tượng Chuỗi thành một Mảng Chuỗi bằng cách tách chuỗi thành các chuỗi con. Trong trường hợp này, stringToReverse. split("") trả về đầu ra là


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
3

🔸 Sau khi chuỗi được tách thành một mảng chuỗi, thì


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
0 thực hiện công việc chính là đảo ngược các phần tử mảng đơn tại chỗ. Phần tử mảng đầu tiên bây giờ là phần tử mảng cuối cùng và ngược lại.
Trong trường hợp của chúng ta, splitString. reverse() trả về đầu ra là.


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
0

🔸 Phương thức


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
1 cuối cùng nối lại tất cả các ký tự đơn đã được phân tách trước đó bằng phương thức split() để sắp xếp lại chuỗi bị đảo ngược. Trong ví dụ của chúng tôi, đầu ra cuối cùng là


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
2

Xâu chuỗi các phương thức này

Chà, ba phương thức này có thể được xâu chuỗi để làm cho mã của chúng ta gọn gàng và sạch sẽ theo cách sau và đầu ra sẽ giống nhau

Làm thế nào để bạn đảo ngược các chữ cái trong javascript?

Tuy nhiên, thay vì sử dụng


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
9, chúng ta cũng có thể thực hiện công việc này bằng cách sử dụng

const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
4, đây là một cú pháp ES6. Nó hoạt động giống như trước đây

Làm thế nào để bạn đảo ngược các chữ cái trong javascript?

Vì vậy, toán tử trải rộng đang thực hiện chính xác công việc giống như split(), đó là tách đối tượng chuỗi thành các ký tự đơn

🔶Sử dụng giảm dần cho vòng lặp

Đây là cách tiếp cận dễ dàng và lâu đời nhất để đảo ngược chuỗi trong JavaScript nhưng hoạt động khá tốt ở mọi nơi

Làm thế nào để bạn đảo ngược các chữ cái trong javascript?

🔸 Lúc đầu, newString đã tạo một chuỗi trống để lưu trữ chuỗi mới được tạo.
🔸 Điểm bắt đầu của vòng lặp sẽ là (str. độ dài - 1) tương ứng với ký tự cuối cùng của chuỗi, "r". Miễn là i lớn hơn hoặc bằng 0, vòng lặp sẽ tiếp tục. Chúng tôi đang giảm i sau mỗi lần lặp.
🔸 Sau đó, hàm trả về chuỗi đảo ngược.

Chúng ta cũng có thể sử dụng cú pháp


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
5 được giới thiệu bởi JavaScript ES6, cú pháp này cũng rất dễ sử dụng và giảm khả năng mắc lỗi khi viết các điều kiện của vòng lặp

Làm thế nào để bạn đảo ngược các chữ cái trong javascript?

Sạch sẽ hơn nhiều so với vòng lặp for trước đó, phải không??

🔸 Chữ "c" trong điều kiện của vòng lặp for lấy mỗi chữ cái của chuỗi dưới dạng một ký tự đơn. Để hiểu rõ hơn, tôi đã thêm hai giao diện điều khiển. log() trong hình sau và bạn cũng có thể thấy đầu ra trong thiết bị đầu cuối

Làm thế nào để bạn đảo ngược các chữ cái trong javascript?

🔶Phương pháp đệ quy. Phương pháp đệ quy

Sử dụng phương thức Đệ quy là một cách tiếp cận rất nổi tiếng khác để đảo ngược chuỗi trong JavaScript. Chúng ta cần hai phương thức để thực hiện cách tiếp cận đệ quy này. Một là phương pháp


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
6 và một là phương pháp

const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
7.
Hãy xem một ví dụ.

Làm thế nào để bạn đảo ngược các chữ cái trong javascript?

🔸 Chuỗi. nguyên mẫu. Phương thức substr() trả về một phần của chuỗi, bắt đầu từ chỉ mục đã chỉ định và mở rộng cho một số ký tự nhất định sau đó.
Trong ví dụ của chúng ta, phần


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
8 trả về "ecursion".

🔸 Phương thức


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
7 trả về ký tự được chỉ định từ một chuỗi.
Trong ví dụ của chúng ta, phần
const reverseString = (str) => str.split("").reduce((reversed, character) => character + reversed, "");

console.log(reverseString("Roy is a developer"));
//repoleveD a si yoR
0 trả về "R".

🔸

const reverseString = (str) => str.split("").reduce((reversed, character) => character + reversed, "");

console.log(reverseString("Roy is a developer"));
//repoleveD a si yoR
1 trước tiên trả về một phần của chuỗi , bắt đầu từ chỉ mục của ký tự đầu tiên bao gồm trong chuỗi con được trả về. Phần thứ hai của phương thức chạm vào điều kiện if và cuộc gọi được lồng nhiều nhất sẽ trả về ngay lập tức.
Chúng ta cần nhớ rằng phương thức này sẽ không chỉ có một lệnh gọi mà có nhiều lệnh gọi lồng nhau.

Tuy nhiên, cách tiếp cận này không phải là cách tốt nhất để đảo ngược chuỗi vì độ sâu của đệ quy bằng với độ dài của chuỗi và trong trường hợp chuỗi rất dài, sẽ mất nhiều thời gian hơn bất kỳ phương pháp nào khác và kích thước của chuỗi

🔶 Sử dụng Mảng. nguyên mẫu. phương pháp giảm ()

Phương thức

const reverseString = (str) => str.split("").reduce((reversed, character) => character + reversed, "");

console.log(reverseString("Roy is a developer"));
//repoleveD a si yoR
2 thực thi hàm gọi lại bộ giảm tốc trên từng phần tử của mảng, truyền vào giá trị trả về từ phép tính trên phần tử trước đó và trả về một giá trị duy nhất làm kết quả cuối cùng. Cú pháp có thể được viết như.
______83

Hãy xem một ví dụ về điều này


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
2

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

🔸 Hàm ReverseString lấy một chuỗi str làm tham số.
🔸 Điều đầu tiên chúng ta cần làm là chia chuỗi thành các ký tự đơn. Chúng tôi lấy một mảng arr để giữ các giá trị.
🔸 hàm reduce() nhận 2 tham số là đảo ngược và ký tự. Nếu chúng ta so sánh nó với cú pháp cơ bản của reduce(), thì ngược lại là giá trị/bộ tích lũy trước đó và ký tự là giá trị hiện tại. Hàm stringReversed trả về giá trị hiện tại khi cộng nó với giá trị trước đó, giá trị này thực sự đảo ngược toàn bộ ký tự mảng và nối chúng lại với nhau theo cách đảo ngược.

Khối mã này có thể nhỏ gọn hơn nếu chúng ta sử dụng cú pháp JavaScript ES6. 👇


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

Biến nó thành mã một dòng

________số 8

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

🔶Sử dụng Biểu thức chính quy (RegEx)

Đây là một trong những cách tiếp cận hiếm nhất và phức tạp nhất để đảo ngược chuỗi nhưng các nhà phát triển thích chơi với Biểu thức chính quy JavaScript chắc chắn có thể thử cách tiếp cận này. Ngoài ra, trong bất kỳ cuộc phỏng vấn nào, nếu bạn có thể thể hiện điều này, thì đó có thể là một điểm cộng vì đây là cách tiếp cận mà mọi người thường không sử dụng và họ sẽ biết rằng bạn đã thành thạo một kỹ năng khác đó là Biểu thức chính quy.
Sau đây là một ví dụ về phương pháp này.


const reverseString = (str) => {
  return str.split("").reduce((reversed, character) => character + reversed, "");
};

console.log(reverseString("Roy is a Developer"));
//repoleveD a si yoR
5

Vào chế độ toàn màn hình Thoát chế độ toàn màn hình

🔸Số lượng đơn giản nhất trong RegEx là một số trong dấu ngoặc nhọn. {N}. Một bộ định lượng được thêm vào một ký tự (hoặc một lớp ký tự hoặc một [. ] đặt, v.v.) và chỉ định số lượng chúng tôi cần.
Trong ví dụ của chúng tôi, {1,1} biểu thị rằng chúng tôi cần chính xác 1 ký tự để khớp. Nếu chúng ta viết giao diện điều khiển. log(kết quả), sau đó chúng ta sẽ nhận được một cái gì đó như thế này.
______84

🔸 RegEx ở đây chủ yếu làm công việc tách đối tượng chuỗi thành các ký tự đơn của mảng. Sau khi tách phương thức reverse() và join() hoạt động chính xác như cách nó đã hoạt động với

const reverseString = (str) => str.split("").reduce((reversed, character) => character + reversed, "");

console.log(reverseString("Roy is a developer"));
//repoleveD a si yoR
5 hoặc
const reverseString = (str) => str.split("").reduce((reversed, character) => character + reversed, "");

console.log(reverseString("Roy is a developer"));
//repoleveD a si yoR
6 như tôi đã trình bày ở trên trong phương pháp tích hợp sẵn