Hi 🤓 Cảm ơn bạn đã ghé thăm blog này, nếu những bài viết trên blog giúp ích cho bạn. Bạn có thể giúp blog hiển thị quảng cáo bằng cách tạm ngừng ad blocker 😫 và để giúp blog duy trì hoạt động nếu bạn muốn.
Cảm ơn bạn!

Đề 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); // ["h", "i", ",", " ", "i", "'", "m",...]

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é.

For...of

Đố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); // ["h", "i", ",", " ", "i", "'", "m",...]

Array.from

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)); // ["h", "i", ",", " ", "i", "'", "m",...]

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 😁🔥.

Có thể bạn thích ⚡
homiedev
About Me

Hi, I'm @devnav. Một người thích chia sẻ kiến thức, đặc biệt là về Frontend 🚀. Trang web này được tạo ra nhằm giúp các bạn học Frontend hiệu quả hơn 🎉😄.

Chúc các bạn tìm được kiến thức hữu ích trong blog này 😁😁.