Hướng dẫn how do you count occurrences in javascript? - làm thế nào để bạn đếm số lần xuất hiện trong javascript?

Đây là chức năng nhanh nhất!

Tại sao nó nhanh hơn?

  • Không kiểm tra char bởi char [với 1 ngoại lệ]
  • Sử dụng một thời gian và gia số 1 var [số char Count var] so với A để kiểm tra độ dài và tăng 2 vars [thường là var i và var với số lượng char]
  • Sử dụng cách ít vars
  • Không sử dụng regex!
  • Sử dụng chức năng [hy vọng] được tối ưu hóa cao
  • Tất cả các hoạt động đều được kết hợp như chúng có thể, tránh bị chậm lại do nhiều hoạt động

    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};
    

Đây là phiên bản chậm và dễ đọc hơn:

    String.prototype.timesCharExist = function [ chr ] {
        var total = 0, last_location = 0, single_char = [ chr + '' ][0];
        while[ last_location = this.indexOf[ single_char, last_location ] + 1 ]
        {
            total = total + 1;
        }
        return total;
    };

Cái này chậm hơn vì bộ đếm, tên var dài và lạm dụng 1 var.

Để sử dụng nó, bạn chỉ cần làm điều này:

    'The char "a" only shows up twice'.timesCharExist['a'];

Chỉnh sửa: [2013/12/16]

Đừng sử dụng với Opera 12.16 trở lên! Sẽ mất gần 2,5 lần so với giải pháp Regex!

Trên Chrome, giải pháp này sẽ mất từ ​​14ms đến 20ms cho 1.000.000 ký tự.

Giải pháp Regex mất 11-14ms cho cùng một lượng.

Sử dụng một hàm [bên ngoài

    'The char "a" only shows up twice'.timesCharExist['a'];
4] sẽ mất khoảng 10-13ms.

Đây là mã được sử dụng:

    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];

Kết quả của tất cả các giải pháp nên là 100.000!

Lưu ý: Nếu bạn muốn chức năng này đếm nhiều hơn 1 char, hãy thay đổi ở đâu

    'The char "a" only shows up twice'.timesCharExist['a'];
5 thành
    'The char "a" only shows up twice'.timesCharExist['a'];
6

Giới thiệu

Khi làm việc với các mảng trong JavaScript, chúng tôi thường gặp các tình huống yêu cầu chúng tôi đếm số lần xuất hiện của một yếu tố cụ thể trong mảng đó - phần tử này có thể là một chuỗi, đối tượng, số hoặc thậm chí là boolean.

Trong bài viết này, chúng tôi sẽ xem qua một số phương pháp để đếm số lần xuất hiện của một phần tử hoặc tất cả các phần tử trong một mảng JavaScript. Chúng ta cũng sẽ xem xét cách đếm số lượng phần tử xuất hiện trong một mảng mảng bằng cách làm phẳng mảng trước.

Cách đếm các phần tử xuất hiện bằng cách sử dụng các vòng lặp

Vòng

    'The char "a" only shows up twice'.timesCharExist['a'];
7 là một trong những phương pháp tiêu chuẩn để lặp qua một mảng. Nó cho phép chúng ta lặp qua từng phần tử của một mảng và so sánh nó với phần tử chúng ta đang tìm kiếm. Bằng cách đó, chúng ta có thể đếm số lần xuất hiện của phần tử đó trong một mảng. Chúng tôi cũng có thể sử dụng nó để đếm số lần xuất hiện của tất cả các yếu tố trong mảng, nhưng chúng tôi sẽ đề cập đến trường hợp đó sau trong bài viết này. Hiện tại, hãy giả sử chúng tôi muốn tìm số lần xuất hiện của yếu tố cụ thể.

Giải pháp tốt nhất: For-Of Loop

Rõ ràng, JavaScript có vòng lặp

    'The char "a" only shows up twice'.timesCharExist['a'];
7 tích hợp mà chúng ta có thể sử dụng, nhưng, để làm cho mọi thứ trở nên dễ dàng hơn một chút, chúng ta có thể sử dụng sửa đổi của nó - vòng lặp ____29. Theo cách đó, thay vì truy cập vào từng phần tử bằng chỉ mục của nó trong mảng, chúng ta có thể truy cập giá trị của chính phần tử.

Lưu ý: JavaScript ES2015 đã giới thiệu vòng lặp

    'The char "a" only shows up twice'.timesCharExist['a'];
9. Đây là một giải pháp thay thế cho phương pháp
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
1, trước đây được sử dụng để lặp lại từng phần tử của một mảng và áp dụng một số thay đổi cho mỗi trong số chúng. Sự khác biệt chính giữa
    'The char "a" only shows up twice'.timesCharExist['a'];
9 và
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
3 là đầu tiên tương thích với các hàm
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
4. Trong bài viết này, chúng tôi đã chọn sử dụng chủ yếu vòng lặp
    'The char "a" only shows up twice'.timesCharExist['a'];
9 thay vì phương pháp
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
3 chỉ để an toàn trong một kịch bản không đồng bộ, nhưng nếu bạn không bận tâm đến điều đó, hãy thoải mái sử dụng
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
3 thay thế!
JavaScript ES2015 introduced the
    'The char "a" only shows up twice'.timesCharExist['a'];
9 loop. It is an alternative to
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
1 method, previously used to iterate over each element of an array and apply some changes to each of them. The primary difference between
    'The char "a" only shows up twice'.timesCharExist['a'];
9 and
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
3 is that the first is compatible with
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
4 functions. In this article, we've opted to primarily use the
    'The char "a" only shows up twice'.timesCharExist['a'];
9 loop instead of the
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
3 method just to be safe in an asynchronous scenario, but if you are not bothered with that, feel free to use
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
3 instead!

Trước hết, chúng ta hãy xem bao nhiêu lần một yếu tố cụ thể xảy ra trong một mảng. Để thực hiện điều này, chúng ta cần đặt biến

    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
8 thành
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
9, sau đó lặp qua mảng và tăng
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
8 mỗi lần chúng ta tìm thấy phần tử chúng ta đang tìm kiếm. Khi chúng tôi lặp qua toàn bộ mảng,
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
8 sẽ lưu trữ số lần xuất hiện của phần tử chúng tôi đang tìm kiếm:

const allStudentsAge = [19, 22, 18, 19, 16, 18, 19, 21, 24];
let target = 19;

let counter = 0;
for [studentAge of allStudentsAge] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 3

Một tình huống mà chúng ta có một mảng mảng phức tạp hơn một chút. Trong trường hợp đó, trước tiên chúng ta sẽ phải làm phẳng mảng để tất cả các phần tử đi vào một mảng bằng phương pháp

const allStudentsAge = [19, 22, 18, 19, 16, 18, 19, 21, 24];
let target = 19;

let counter = 0;
for [studentAge of allStudentsAge] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 3
2:

const allStudentsAge = [
    [1, 19],
    [3, 4],
    [5, 19],
    [7, 8, 19],
    [10, 11, 12, 13, 14, 15],
    [19, 22, 18, 19, 16, 18, 19, 21, 24]
];

let target = 19;

let counter = 0;
for [studentAge of allStudentsAge.flat[]] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 6

Điều này cũng hoạt động cho các mảng với các yếu tố của các loại dữ liệu khác nhau. Hãy tạo một mảng ví dụ với các loại dữ liệu khác nhau và kiểm tra xem liệu chúng ta có thể đếm số lần xuất hiện của một yếu tố nhất định không:

const myArray = [false, 24, "English", false, "english", 22, 19, false, "English", 19];

Bây giờ, chúng ta có thể tạo một hàm có thể tái sử dụng để đếm số lần xuất hiện của phần tử đã cho trong mảng đã cho:

const checkOccurrence = [array, element] => {
    let counter = 0;
    for [item of array.flat[]] {
        if [item == element] {
            counter++;
        }
    };
    console.log[counter];
};

Hãy kiểm tra xem chức năng chúng tôi đã tạo có thực sự hoạt động không:

checkOccurrence[myArray, false]; // 3
checkOccurrence[myArray, 19]; // 2
checkOccurrence[myArray, "english"]; // 1

Chúng tôi đã xác minh rằng có ba trường hợp của phần tử

const allStudentsAge = [19, 22, 18, 19, 16, 18, 19, 21, 24];
let target = 19;

let counter = 0;
for [studentAge of allStudentsAge] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 3
3 và hai trường hợp của phần tử
const allStudentsAge = [19, 22, 18, 19, 16, 18, 19, 21, 24];
let target = 19;

let counter = 0;
for [studentAge of allStudentsAge] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 3
4, điều này là chính xác, nhưng tại sao chỉ có một lần xuất hiện của phần tử
const allStudentsAge = [19, 22, 18, 19, 16, 18, 19, 21, 24];
let target = 19;

let counter = 0;
for [studentAge of allStudentsAge] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 3
5 thay vì ba? Điều này là do độ nhạy trường hợp của hàm chúng tôi đã tạo - cách tốt nhất để giải quyết điều này là chuyển đổi tất cả các thành phần chuỗi thành chữ hoa [hoặc chữ thường] trước khi đếm chúng:

const checkOccurrence = [array, element] => {
    let counter = 0;
    for [item of array.flat[]] {
        if [typeof item === "string"] {
            let newItem = item.toLowerCase[];
            if [newItem == element] {
                counter++;
            }
        } else {
            if [item == element] {
                counter++;
            }
        }
    };
    console.log[counter];
};

Khi chúng ta đếm các sự xuất hiện của phần tử

const allStudentsAge = [19, 22, 18, 19, 16, 18, 19, 21, 24];
let target = 19;

let counter = 0;
for [studentAge of allStudentsAge] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 3
5, hàm
const allStudentsAge = [19, 22, 18, 19, 16, 18, 19, 21, 24];
let target = 19;

let counter = 0;
for [studentAge of allStudentsAge] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 3
7 trả về
const allStudentsAge = [19, 22, 18, 19, 16, 18, 19, 21, 24];
let target = 19;

let counter = 0;
for [studentAge of allStudentsAge] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 3
8 vì nó không còn nhạy cảm trường hợp:

    String.prototype.timesCharExist = function [ chr ] {
        var total = 0, last_location = 0, single_char = [ chr + '' ][0];
        while[ last_location = this.indexOf[ single_char, last_location ] + 1 ]
        {
            total = total + 1;
        }
        return total;
    };
0

Thay thế #1: cho vòng lặp

Nếu bạn cần truy cập chỉ mục của từng phần tử trong một mảng vì một số lý do, bạn cũng có thể sử dụng vòng lặp

    'The char "a" only shows up twice'.timesCharExist['a'];
7 cơ bản thay vì
    'The char "a" only shows up twice'.timesCharExist['a'];
9:

    String.prototype.timesCharExist = function [ chr ] {
        var total = 0, last_location = 0, single_char = [ chr + '' ][0];
        while[ last_location = this.indexOf[ single_char, last_location ] + 1 ]
        {
            total = total + 1;
        }
        return total;
    };
1

Chúng ta có thể kiểm tra xem điều này có cho chúng ta kết quả tương tự như cùng một chức năng được tạo bằng vòng lặp

    'The char "a" only shows up twice'.timesCharExist['a'];
9 không:

________số 8

Phương thức thay thế #2: foreach []

Một giải pháp thay thế khả thi khác là sử dụng phương thức

    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
3 để lặp lại tất cả các yếu tố của một mảng:

    String.prototype.timesCharExist = function [ chr ] {
        var total = 0, last_location = 0, single_char = [ chr + '' ][0];
        while[ last_location = this.indexOf[ single_char, last_location ] + 1 ]
        {
            total = total + 1;
        }
        return total;
    };
3

Điều này sẽ mang lại cho chúng ta kết quả tương tự như các chức năng trước đó, nhưng, một lần nữa, hãy cẩn thận khi sử dụng phương pháp

    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
3 trong môi trường không đồng bộ:

checkOccurrence[myArray, false]; // 3
checkOccurrence[myArray, 19]; // 2
checkOccurrence[myArray, "english"]; // 1

Kiểm tra số lần xuất hiện của tất cả các yếu tố

Cho đến nay, chúng tôi đã thấy cách đếm sự xuất hiện của một yếu tố cụ thể. Bây giờ, chúng ta hãy xem cách đếm sự xuất hiện của tất cả các phần tử và trả về cả phần tử và số lần xuất hiện dưới dạng đối tượng.

Để bắt đầu, chúng tôi sẽ tạo một đối tượng trống để lưu trữ từng phần tử mảng làm khóa và số lần xuất hiện dưới dạng giá trị. Sau đó, chúng tôi sẽ lặp qua mảng bằng cách sử dụng vòng lặp

    'The char "a" only shows up twice'.timesCharExist['a'];
9 và trên mỗi lần lặp, chúng tôi sẽ tăng số lượng cho phần tử cụ thể nếu nó đã tồn tại trong đối tượng hoặc đặt số lượng thành
const allStudentsAge = [
    [1, 19],
    [3, 4],
    [5, 19],
    [7, 8, 19],
    [10, 11, 12, 13, 14, 15],
    [19, 22, 18, 19, 16, 18, 19, 21, 24]
];

let target = 19;

let counter = 0;
for [studentAge of allStudentsAge.flat[]] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 6
5 nếu không:

Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!

    String.prototype.timesCharExist = function [ chr ] {
        var total = 0, last_location = 0, single_char = [ chr + '' ][0];
        while[ last_location = this.indexOf[ single_char, last_location ] + 1 ]
        {
            total = total + 1;
        }
        return total;
    };
5

Mã trước sẽ xuất ra đối tượng chứa số lần xuất hiện của từng phần tử trong

const allStudentsAge = [
    [1, 19],
    [3, 4],
    [5, 19],
    [7, 8, 19],
    [10, 11, 12, 13, 14, 15],
    [19, 22, 18, 19, 16, 18, 19, 21, 24]
];

let target = 19;

let counter = 0;
for [studentAge of allStudentsAge.flat[]] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 6
6:

    String.prototype.timesCharExist = function [ chr ] {
        var total = 0, last_location = 0, single_char = [ chr + '' ][0];
        while[ last_location = this.indexOf[ single_char, last_location ] + 1 ]
        {
            total = total + 1;
        }
        return total;
    };
6

Giả sử chúng ta vẫn muốn tránh sự nhạy cảm của trường hợp, chúng ta có thể làm điều gì đó như sau:

    String.prototype.timesCharExist = function [ chr ] {
        var total = 0, last_location = 0, single_char = [ chr + '' ][0];
        while[ last_location = this.indexOf[ single_char, last_location ] + 1 ]
        {
            total = total + 1;
        }
        return total;
    };
7

Điều này sẽ xuất ra đối tượng bên dưới:

    String.prototype.timesCharExist = function [ chr ] {
        var total = 0, last_location = 0, single_char = [ chr + '' ][0];
        while[ last_location = this.indexOf[ single_char, last_location ] + 1 ]
        {
            total = total + 1;
        }
        return total;
    };
8

Cách đếm các yếu tố xảy ra bằng cách sử dụng giảm []

const allStudentsAge = [
    [1, 19],
    [3, 4],
    [5, 19],
    [7, 8, 19],
    [10, 11, 12, 13, 14, 15],
    [19, 22, 18, 19, 16, 18, 19, 21, 24]
];

let target = 19;

let counter = 0;
for [studentAge of allStudentsAge.flat[]] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 6
7 là một phương pháp mạnh mẽ có thể được sử dụng để dễ dàng nhận được số lần xuất hiện của mỗi phần tử trong một mảng chỉ có một vài dòng mã. Nó chấp nhận hàm gọi lại và giá trị ban đầu, đối với chúng tôi là một đối tượng trống để chúng tôi có thể điền vào sau:

    String.prototype.timesCharExist = function [ chr ] {
        var total = 0, last_location = 0, single_char = [ chr + '' ][0];
        while[ last_location = this.indexOf[ single_char, last_location ] + 1 ]
        {
            total = total + 1;
        }
        return total;
    };
9

Điều này sẽ xuất ra một đối tượng chứa các phần tử dưới dạng các khóa và số lần xuất hiện dưới dạng giá trị:

    'The char "a" only shows up twice'.timesCharExist['a'];
0

Cách đếm các phần tử xuất hiện bằng phương thức bộ lọc []

Trong phần trước, chúng tôi đã thấy cách sử dụng các vòng lặp và phương thức

const allStudentsAge = [
    [1, 19],
    [3, 4],
    [5, 19],
    [7, 8, 19],
    [10, 11, 12, 13, 14, 15],
    [19, 22, 18, 19, 16, 18, 19, 21, 24]
];

let target = 19;

let counter = 0;
for [studentAge of allStudentsAge.flat[]] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 6
7 cho các tình huống khác nhau mà chúng tôi có thể muốn đếm số lần xuất hiện của các phần tử trong mảng JavaScript. Ngoài các vòng lặp và
const allStudentsAge = [
    [1, 19],
    [3, 4],
    [5, 19],
    [7, 8, 19],
    [10, 11, 12, 13, 14, 15],
    [19, 22, 18, 19, 16, 18, 19, 21, 24]
];

let target = 19;

let counter = 0;
for [studentAge of allStudentsAge.flat[]] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 6
7, chúng ta cũng có thể sử dụng các phương pháp khác, chẳng hạn như
const myArray = [false, 24, "English", false, "english", 22, 19, false, "English", 19];
0, để xác định số lần xuất hiện của một phần tử cụ thể trong một mảng.

Để thực hiện điều này, chúng tôi sẽ lọc nó và sau đó nó sẽ điền vào một mảng dựa trên điều kiện, từ đó chúng tôi sẽ có được độ dài bằng thuộc tính

const myArray = [false, 24, "English", false, "english", 22, 19, false, "English", 19];
1:

    'The char "a" only shows up twice'.timesCharExist['a'];
1

Sử dụng Lodash để đếm phần tử xuất hiện

Có lẽ tốt nhất là không cài đặt các gói bổ sung chỉ với mục đích đếm các phần tử trong một mảng, nhưng nếu chúng tôi đã sử dụng thư viện Lodash trong dự án của chúng tôi, sẽ không có hại gì khi sử dụng nó để đếm các phần tử. Phương thức

const myArray = [false, 24, "English", false, "english", 22, 19, false, "English", 19];
2 trong Lodash chấp nhận một mảng và trả về một đối tượng. Đối tượng này chứa các phần tử và số lượng của chúng là các cặp giá trị khóa:

    'The char "a" only shows up twice'.timesCharExist['a'];
2

Điều này sẽ cung cấp cho chúng tôi một đối tượng:

    'The char "a" only shows up twice'.timesCharExist['a'];
0

Sự kết luận

Nếu bạn cần đếm số lần xuất hiện của các phần tử trong một mảng, có lẽ đặt cược tốt nhất của bạn là sử dụng vòng lặp

    'The char "a" only shows up twice'.timesCharExist['a'];
9 như trong bài viết này. Đó là an toàn
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
4, nhưng vẫn là một cách rất đơn giản để lặp lại toàn bộ các yếu tố mong muốn và số lượng. Chúng tôi cũng đã xem xét các phương pháp thay thế khác - phương pháp
    'The char "a" only shows up twice'.timesCharExist['a'];
7 cơ bản,
    String.prototype.timesCharExist=function[c]{var t=0,l=0,c=[c+''][0];while[l=this.indexOf[c,l]+1]++t;return t};

    var x=Array[100001].join['1234567890'];

    console.time['proto'];x.timesCharExist['1'];console.timeEnd['proto'];

    console.time['regex'];x.match[/1/g].length;console.timeEnd['regex'];

    var timesCharExist=function[x,c]{var t=0,l=0,c=[c+''][0];while[l=x.indexOf[c,l]+1]++t;return t;};

    console.time['func'];timesCharExist[x,'1'];console.timeEnd['func'];
3 và
const myArray = [false, 24, "English", false, "english", 22, 19, false, "English", 19];
0.

Nếu bạn cần xem xét số lần xuất hiện của mỗi phần tử trong một mảng, chúng tôi cũng đã bảo vệ bạn - bạn có thể sử dụng lại vòng lặp

    'The char "a" only shows up twice'.timesCharExist['a'];
9. Ngoài ra, bạn có thể sử dụng phương thức
const allStudentsAge = [
    [1, 19],
    [3, 4],
    [5, 19],
    [7, 8, 19],
    [10, 11, 12, 13, 14, 15],
    [19, 22, 18, 19, 16, 18, 19, 21, 24]
];

let target = 19;

let counter = 0;
for [studentAge of allStudentsAge.flat[]] {
  if [studentAge == target] {
        counter++;
    }
};

console.log[counter]; // 6
7 hoặc thư viện Lodash.

Làm thế nào để bạn đếm một cái gì đó trong JavaScript?

Nhiều ví dụ hơn..
Gọi Console.Count [] Hai lần: Bảng điều khiển. đếm[]; Bảng điều khiển. đếm[];.
Gọi Console.Count hai lần, với nhãn: Bảng điều khiển. Đếm ["Mylabel"]; Bảng điều khiển. Đếm ["Mylabel"] ;.
Để xóa nhãn, sử dụng "" làm tham số: Bảng điều khiển. đếm[""]; Bảng điều khiển. đếm[""];.

Có một phương pháp đếm trong JavaScript?

JS |Đếm [] hàm.Hàm số [] được sử dụng để đếm số lượng bộ sưu tập trong phần tử.Trong JavaScript, mảng trước tiên được chuyển đổi thành một bộ sưu tập và sau đó chức năng được áp dụng cho bộ sưu tập.Giá trị trả về: Trả về số lượng của phần tử trong bộ sưu tập đó.The count[] function is used to count the number of collections in the element. In JavaScript, the array is first converted to a collection and then the function is applied to the collection. Return Value: Returns the count of the element in that collection.

Làm cách nào để đếm số lần một từ xuất hiện trong JavaScript?

chiều dài;j ++] {if [resultwords [i] === strarray [j]] {bộ đếm+= 1;} // đẩy để kết quả kết quả bộ đếm cho mỗi từ kết quả [i] = bộ đếm;}} // Tạo một đối tượng trong đó khóa là từ từ từ kết quả và giá trị là số từ WordCount cho [var k = 0; k

Bài Viết Liên Quan

Chủ Đề