Một số cách để chuyển chuỗi thành mảng các ký tự trong JavaScript

Đề bài

Trong một số trường hợp chúng ta phải chuyển từ một string sang mảng các ký tự trong string đó vậy chúng ta sẽ xử lí nó thế nào ? Mình sẽ đưa ra một số cách mình hay áp dụng để giải quyết vấn đề này nhé 😅😁.

Giả sử mình có một string sau:

let

str

=

"hi, i'm a web developer"

;

Chúng ta sẽ thực hiện chuyển string này thành mảng các ký tự nhé. Bắt đầu thôi nào 🙌

Split

Cách đầu tiên mình sẽ sử dụng method split.

Method split chia các chuỗi con trong chuỗi và đưa vào mảng. method này sẽ return về một mảng. Trong bài viết này mình sẽ không đi sâu vào lý thuyết mà sẽ để các bạn tìm hiểu về method nhé. Đây là cách mình làm:

let

charArr

=

str

.

split

(

""

)

;

console

.

log

(

charArr

)

;

Mình chuyền một chuỗi rỗng (“”) và kết quả sẽ trả về đúng như mong đợi.

Theo MDN docs.:

If separator is an empty string (“”), str is converted to an array of each of its UTF-16 “characters”

For loop

Cách này mình nghĩ nhiều bạn thường hay áp dụng ^^. Tạo một mảng empty và sau đó push các ký tự trong vòng lặp for vào trong mảng này.

let

charArr

=

[

]

;

for

(

let

i

=

0

;

i

<

str

.

length

;

i

++

)

{

charArr

.

push

(

str

[

i

]

)

;

}

hoặc nếu nhìn chán nhưng vẫn muốn sử dụng cách này ta sử dụng charAt:

for

(

let

i

=

0

;

i

<

str

.

length

;

i

++

)

{

charArr

.

push

(

str

.

charAt

(

i

)

)

;

}

Còn một cách sử dụng for nữa chúng ta cùng theo dõi nhé.

Đối với For…of, tương tự như vòng for ở trên ta tạo một array empty và mình đặt char (có thể đặt tên bất kì) ở vòng lặp này sẽ tương ứng với các ký tự trong string.

let

charArr

=

[

]

;

for

(

let

char

of

str

)

{

charArr

.

push

(

char

)

;

}

console

.

log

(

charArr

)

;

Method Array.from này cách sử dụng rất đơn giản ta chỉ cần làm như sau:

let

charArr

=

Array

.

from

(

str

)

;

Ta được kết quả tương tự như trên.

Cần lưu ý rằng Array.from no support IE

Spread Syntax

Dùng spread Syntax này rất ngắn gọn và thần thánh 🤨 sử dụng chỉ với ... 🤷‍♀️

let

str

=

"hi, i'm a web developer"

;

let

charArr

=

[

...

str

]

;

Regular expressions

Cách cuối cùng sử dụng Regular expressions cách này cũng khá ngắn gọn:

console

.

log

(

str

.

match

(

/

[\s\S]

/

g

)

)

;

Mình giải thích một chút: \s sẽ match với whitespace và \S sẽ là not whitespace khi kết hợp lại nó sẽ match bất kì kể cả khoảng trắng. flag g là global sẽ tìm kiếm toàn bộ kết quả phù hợp, nếu không có global flag nó sẽ match điều kiện thỏa mãn đầu tiên sau đó dừng lại.

Kết luận

Trên đây là một số cách ta có thể sử dụng để chuyển chuỗi string sang mảng các kí tự.

Hy vọng sau bài viết các bạn sẽ hiểu và ứng dụng nó vào trong trường hợp mà các bạn cần. Mình sẽ ra thêm các bài viết hay các bạn nhớ ủng hộ mình nhé.

Ngày mới tốt lành 😁🔥.