Đếm tổng số lần xuất hiện của một ký tự của một đoạn văn bảng bất kỳ trong JavaScript? | How to count the number of letters in a random string in JavaScript?

Hôm nay có một yêu cầu là đếm số lượng một ký tự trong một chuỗi dự liêu được nhâp vào một cách bất kỳ. Theo thông thường thì tôi ngay lập tích sẽ phân tích làm theo hướng vào viết một vòng lập(for) để xử lý yêu cầu trên, nhưng tự nhiên thấy buồn buồn ngồi phân thích xem có cách nào hay hơn không?

Sau một hồi ngẩm ngủ tôi phát hiện được một số cách cũng khá hay, nó rất đơn giản và dễ dụng. Vì vậy viết bài này chia sẻ với anh chị em. Nếu có gì sai sót anh chị em giơ cao nói khẽ giúp.


Yều cầu - Requirement:

Để phân tích đầu tiên ta cần có một đề bài, đề bài như sau tôi có một đoạn text bên dưới.
ASDFASD + 6546456 +RUYRYUTYU + ASDFSD + 654654SDFASD

Yêu cầu đặt ra là đếm số lần xuất hiện của dấu cộng trong đoạn text trên. Phương pháp đầu tiên tôi nghĩ đến là viết vòng for như sau:
function getCountCharacterInString()
{
    var text = "ASDFASD + 6546456 +RUYRYUTYU + ASDFSD + 654654SDFASD";
    var count = 0;

    for (var i = 0; i < text.length; i++)
    {
        var tmp = text.substring(i, i+1);
        if (tmp == "+")
        {
            count++;
        }
    }

    //document.getElementById("demo").innerHTML=count;

}

Kết quả sau khi  thực thi hàm trên sẽ là
4

Nhìn lại đoạn mã trên thấy mà mản có cái yêu cầu tí xíu à, mà viết mệt gần chết TT^TT. Sau đây tôi giới thiệu 2 phương pháp mới phân tích được ^^!


Sử dụng phương thức Split:

 function getCountCharacterInString()
{
    var text = "ASDFASD + 6546456 +RUYRYUTYU + ASDFSD + 654654SDFASD";
    var count = text.split("+").length - 1;

    //document.getElementById("demo").innerHTML=count;

}

Kết quả sau khi  thực thi hàm trên sẽ là
4

Máy phương thức trong đây khá đơn giản nên mình không giải thích nha, nhìn phát là hiểu, còn bạn nào chưa rõ thì comment phát để mình giải thích.

Nhớ lại trước đây cũng có nhiều lần đụng phải trường hợp này sao nghĩ không ra ta TT^TT thiệt hem thông minh tí nào, nhưng để ý kỹ nếu không có làm nhiều thì chắc cũng không nghĩ tới ^^! thôi kệ trăm hay không bằng tay quen, làm lâu năm cũng thành cụ.

Lỡ rùi chia sẻ tâm sự tí xíu, hồi lúc xưa thiệt là xưa làm trái ngành tay nghề càng lúc càng mòn, ngày nãy ngày nay vẫn hơi làm trái nghề nhưng cũng có code chút đỉnh dần dần trở lại như xưa(vẫn gà như cũ).

Từ đây rút ra kinh nghiệm khi học xong thì ráng đi làm đúng ngành thì tay nghề công kỹ thuật mới cao lên được.

Nếu vì hoàn cảnh hoặc khả năng vẫn chưa tìm được việc phải làm tạm ngành nghề nào đó thì nên cố gắng tận dụng càng nhiều càng tốt nhưng gì mình đã học vào công việc cho đỡ mòn tay, khi đi làm về cũng chịu khó tự đề ra một man đề gì đó hoặc kiếm bài tập gì đó để làm nếu không thì giống mình lúc cần thì chả nhớ gì hết trơn.

Lời tâm sự đã xong chân thành cảm ơn đọc giả đã ủng hộ hoặc không ủng hộ cũng hem sao vì đã lỡ viết rùi. Sau đây xin giới thiệu phương thức thứ 2.


Sử dụng phương thức Math:

 function getCountCharacterInString()
{
    var text = "ASDFASD + 6546456 +RUYRYUTYU + ASDFSD + 654654SDFASD";
    var count = text.match(/\+/g).length;

    //document.getElementById("demo").innerHTML=count;

}

Kết quả sau khi  thực thi hàm trên sẽ là
4

Ở đây phương thức Math mình sử dụng Pattern nếu bạn bạn chưa biết thì có thể lên chú Google để hỏi hoặc vào trang sau mình có mô tả xíu về pattern theo cách hiểu của mình.

http://blog.vnlives.net/2013/07/javascript-kiem-tra-tinh-hop-le-cua.html

JavaScript mình tự mò để học phục vụ cho công việc, nên có gì sơ sót thì mong các bạn thị giả giơ cao nói khẽ giúp mình phát.



Write: +Bui Ngoc Son





No comments:

Post a Comment