Đếm số lần xuất hiện của ký tự trong chuỗi JavaScript với 3 cách cơ bản | Laptrinhcanban.com

Đếm số lần xuất hiện của ký tự trong chuỗi JavaScript với 3 cách cơ bản

Hướng dẫn 3 cách cơ bản để đếm số lần xuất hiện của ký tự trong chuỗi JavaScript. Trong JavaScript không tồn tại phương pháp trực tiếp nào giúp chúng ta thực hiện đếm số lần xuất hiện của ký tự trong chuỗi JavaScript cả. Tuy nhiên bằng cách kết hợp các hàm hoặc phương thức có sẵn lại với nhau, chúng ta hoàn toàn có thể thực hiện được việc này.

Chúng ta có 3 phương pháp cơ bản để đếm số lần xuất hiện của ký tự trong chuỗi JavaScript như sau:

  • Sử dụng kết hợp phương thức split() và thuộc tính length
  • Sử dụng kết hợp hàm match() và thuộc tính length
  • Sử dụng kết hợp phương thức substring() và vòng lặp for

Đếm số lần xuất hiện của ký tự trong chuỗi JavaScript | phương thức split() và thuộc tính length

Phương thức split() trong JavaScript được sủ dụng để tách chuỗi trong JavaScript bằng một ký tự phân cách và thu về kết quả là một mảng có các phần tử là các chuỗi nhỏ vừa được tách ra.

Nói cách khác thì số phần tử được tách ra từ chuỗi ban đầu trừ đi 1 đơn vị chính bằng số lần xuất hiện của ký tự phân tách được chỉ định.

Ứng dụng điều này, chúng ta chỉ cần tách chuỗi ban đầu bởi ký tự cần tìm số lần xuất hiện, sau đó đếm số phần tử trong mảng ( bằng thuộc tính length) và trừ đi 1 đơn vị là xong.

Cú pháp chúng ta sử dụng để đếm số lần xuất hiện của ký tự trong chuỗi JavaScript bằng phương thức split() và thuộc tính length sẽ là:

str.split(sub).length - 1

Ví dụ cụ thể, chúng ta đếm số lần xuất hiện của một ký tự trong chuỗi ban đầu như sau:

let str = "I love you and our son";
let sub = "o";

console.log(str.split(sub).length - 1);
//>4

Tương tự chúng ta đếm số lần xuất hiện của một chuỗi ký tự trong chuỗi ban đầu như sau:

let str = "I love you and our son";

console.log(str.split("ou").length - 1);
//>2

console.log(str.split("abc").length - 1);
//>0

Đếm số lần xuất hiện của ký tự trong chuỗi JavaScript | hàm match() và thuộc tính length

Hàm match() trong đối tượng biểu thức chính quy của JavaScript sẽ tìm kiếm ký tự dựa vào RegEx của ký tự đó trong chuỗi ban đầu. Nếu chỉ định RegEx sử dụng trong match() dưới dạng glocal flag thì tất cả các ký tự được tìm thấy trong chuỗi ban đầu sẽ được lấy ra và trả về dưới dạng một mảng kết quả.

Ứng dụng điều này, chúng ta có thể lấy toàn bộ các ký tự chỉ định trong chuỗi ban đầu dưới dạng một mảng, sau đó dùng thuộc tính length để đếm số phần tử là sẽ ra có bao nhiêu lần ký tự đó xuất hiện.

Cú pháp chúng ta sử dụng để đếm số lần xuất hiện của ký tự trong chuỗi JavaScript bằng hàm match() và thuộc tính length sẽ là:

(str.match(RegEx) || []).length

Trong đó:

  • RegEx là biểu thức chính quy dưới dạng glocal flag của ký tự cần tìm trong chuỗi str ban đầu.
  • Toán tử logic || [] được dùng để trả về một mảng trống và tránh lỗi khi không tìm thấy ký tự trong chuỗi ban đầu.

Ví dụ cụ thể, chúng ta đếm số lần xuất hiện của khoảng trắng, được biểu diễn bởi RegEx dưới dạng glocal flag là /\s/g trong chuỗi ban đầu như sau:

let str = "I love you and our son";
let count = (str.match(/\s/g) || []).length;
console.log(count);
//>5

Tương tự chúng ta đếm số lần xuất hiện của một chuỗi ký tự trong chuỗi ban đầu như sau:

let str = "I love you and our son";
let count = (str.match(/o/g) || []).length;
console.log(count);
//>4

Lưu ý là chúng ta cần phải chỉ định RegEx dưới dạng glocal flag để hàm match() có thể tìm và lấy tất cả các ký tự tìm thấy trong chuỗi. Nếu quên chỉ định glocal flag, sẽ chỉ có ký tự đầu tiên được tìm thấy trong chuỗi được trả về từ hàm match(), và số lần xuất hiện của ký tự lúc này sẽ chỉ bằng 1 mà thôi.

let str = "I love you and our son";
let count = (str.match(/o/) || []).length;
console.log(count);
//>1

Đếm số lần xuất hiện của ký tự trong chuỗi JavaScript | phương thức substring() và vòng lặp for

Chúng ta cũng có thể sử dụng phương thức substring() và vòng lặp for để hoàn thành việc đếm số lần xuất hiện của ký tự trong chuỗi JavaScript.

Phương thức substring trong JavaScript có tác dụng cắt một chuỗi con ra từ chuỗi mẹ và thu về một chuỗi mới mà không làm thay đổi chuỗi ban đầu.

Ứng dụng điều này, chúng ta có thể cắt lần lượt các chuỗi con ra từ chuỗi mẹ với số ký tự đúng bằng số độ dài của ký tự cần đếm số lần xuất hiện. Sau đó thì tiến hành so sánh chuỗi con cắt ra với ký tự chỉ đinh, và đếm số lần ký tự này trong chuỗi ban đầu mỗi khi tìm thấy.

Chúng ta sẽ dùng phương thức substring() và vòng lặp for để viết một hàm đếm số lần xuất hiện của ký tự trong chuỗi JavaScript như sau:

function countString(sub, str) {
let count=0;
for (let i = 0; i < str.length; ++i) {
//Cắt chuỗi con từ chuỗi ban đầu có cùng độ dài với ký tự chỉ định.
//Sau đó so sánh chuỗi con này với ký tự chỉ định để đếm số lần xuất hiện
if (str.substring(i, i + sub.length) == sub) {
count += 1;
}
return count
}

Ví dụ, chúng ta gọi hàm trên và đếm số lần xuất hiện của một hoặc một chuỗi ký tự trong chuỗi JavaScript ban đầu như sau:

let str = "I love you and our son";
let sub ="ou";

let result = countString(sub, str);
console.log(result)
//> 2

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách 3 cách cơ bản nhất để đếm số lần xuất hiện của ký tự trong chuỗi 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.