Đếm số lần xuất hiện phần tử trong mảng JavaScript | Laptrinhcanban.com

HOME › >>

Đếm số lần xuất hiện phần tử trong mảng JavaScript

Hướng dẫn các cách đếm số lần xuất hiện phần tử trong mảng JavaScript. Bạn sẽ học được cách đếm số phần tử giống nhau trong mảng JavaScript, cách đếm số phần tử khác nhau trong mảng JavaScript, cách đếm số lần xuất hiện của một phần tử trong mảng JavaScript cũng như cách đếm số lần xuất hiện của các phần tử trong mảng JavaScript sau bài học này.

Chúng ta có 4 cách đếm số lần xuất hiện phần tử trong mảng JavaScript như sau:

  • Đếm số lần xuất hiện của một phần tử trong mảng JavaScript
  • Đếm số lần xuất hiện của các phần tử trong mảng JavaScript
  • Đếm số phần tử giống nhau trong mảng JavaScript
  • Đếm số phần tử khác nhau trong mảng JavaScript

Đếm số lần xuất hiện của 1 phần tử trong mảng JavaScript

Để đếm số lần xuất hiện của một phần tử trong mảng JavaScript, ví dụ như là đếm số lần xuất hiện của phần tử x trong mảng có n phần tử chẳng hạn, chúng ta đơn giản tạo một vòng lặp và so sánh phần tử đó với từng phần tử trong mảng xem có bao nhiêu phần tử trong mảng giống nó là xong.

Chúng ta viết hàm đếm số lần xuất hiện của một phần tử trong mảng JavaScript trong chương trình như sau:

/*Tạo hàm đếm số lần xuất hiện của một phần tử trong mảng JavaScript*/
function count_element_in_array(array, x){
let count = 0;
for(let i=0;i<array.length;i++){
if(array[i]==x) //Tìm thấy phần tử giống x trong mảng thì cộng biến đếm
count ++;
}
console.log( "Phan tu " + x + " xuat hien " + count + " lan");
}

let array = [ 7, 2, 6, 7, 4, 9, 8 ];

count_element_in_array(array, 7);
count_element_in_array(array, 4);

Kết quả phép đếm số lần xuất hiện của một phần tử trong mảng JavaScript như sau:

Phan tu 7 xuat hien 2 lan
Phan tu 4 xuat hien 1 lan

Đếm số lần xuất hiện của các phần tử trong mảng JavaScript

Đây là bài toán Cho một mảng 1 chiều có n phần tử. Hãy đếm số lần xuất hiện của từng phần tử trong mảng JavaScript.

Ví dụ chúng ta có mảng sau

let array= [5, 2, 3, 5, 2, 3, 2, 4];

Khi đó, số 5 xuất hiện 2 lần, số 2 xuất hiện 3 lần, số 3 xuất hiện 2 lần, và số 4 chỉ xuất hiện 1 lần trong mảng đã cho.

Để đếm số lần xuất hiện của các phần tử trong mảng JavaScript, trước hết chúng ta cần xóa phần tử trùng trong mảng và lấy danh sach các phần tử duy nhất trong mảng. Và sau đó sử dụng tới hàm đếm số lần xuất hiện của một phần tử trong mảng JavaScript ở trên là xong.

Và để xóa phần tử trùng trong mảng, chúng ta sử dụng một trong các phương pháp mà Kiyoshi đã giới thiệu trong bài Xóa phần tử trùng trong mảng JavaScript.

Ví dụ, chúng ta sử dụng Array reduce và đếm số lần xuất hiện của các phần tử trong mảng JavaScript như sau:

/*Tạo hàm đếm số lần xuất hiện của một phần tử trong mảng JavaScript*/
function count_element_in_array(array, x){
let count = 0;
for(let i=0;i<array.length;i++){
if(array[i]==x) //Tìm thấy phần tử giống x trong mảng thì cộng biến đếm
count ++;
}
console.log( "Phan tu " + x + " xuat hien " + count + " lan");
}

let array= [5, 2, 3, 5, 2, 3, 2, 4];

/*Xóa phần tử trùng nhau và lấy các phần tử duy nhất*/
let arrayWithNoDuplicates = array.reduce(function (accumulator, element) {
if (accumulator.indexOf(element) === -1) {
accumulator.push(element)
}
return accumulator
}, [])


/*đếm số lần xuất hiện của các phần tử duy nhất*/
for (let i = 0; i < arrayWithNoDuplicates.length; i++)
count_element_in_array(array, arrayWithNoDuplicates[i]);

Kết quả phép đếm số lần xuất hiện của các phần tử trong mảng JavaScript như sau:

Phan tu 5 xuat hien 2 lan
Phan tu 2 xuat hien 3 lan
Phan tu 3 xuat hien 2 lan
Phan tu 4 xuat hien 1 lan

Đếm số phần tử giống nhau trong mảng JavaScript

Để lấy và đếm phần tử giống nhau trong mảng JavaScript, chúng ta sẽ dùng tới một trong các phương pháp mà Kiyoshi đã hướng dẫn trong bài Kiểm tra và lấy phần tử trùng trong mảng JavaScript

Chúng ta sẽ biến tấu chúng và viết hàm đếm số phần tử giống nhau trong mảng JavaScript trong chương trình như sau:

/*Tạo hàm đếm số phần tử giống nhau trong mảng JavaScript*/
function take_duplicate_element(array){
let result = [];
let count = 0;

for (let i = 0; i < array.length - 1; ++i) {
for (let j = i + 1; j < array.length; ++j) {
if (array[i] == array[j]) {
//Tìm thấy phần tử giống nhau thì thêm vào mảng kết quả
result.push(array[i]);
++ count;
}
}
}
console.log(result);
console.log( "So phan tu giong nhau: " + result.length);

}


let array1 = [1,2,3,3,2,5];
let array2 = [1,1,2,3,2,5,5,8,9,6];

//đếm số phần tử giống nhau trong mảng JavaScript
take_duplicate_element(array1);
take_duplicate_element(array2);

Kết quả phép đếm số phần tử giống nhau trong mảng JavaScript như sau:

[ 2, 3 ]
So phan tu giong nhau: 2
[ 1, 2, 5 ]
So phan tu giong nhau: 3

Đếm số phần tử khác nhau trong mảng JavaScript

Để đếm số phần tử khác nhau trong mảng JavaScript, chúng ta ứng dụng cách đếm số lần xuất hiện của các phần tử trong mảng JavaScript ở trên

Trong trường hợp số lần xuất hiện của một phần tử bằng 1 thì số đó khác các số còn lại trong mảng và là đối tượng mà chúng ta cần đếm.

Ví dụ chúng ta đếm số phần tử khác nhau trong mảng JavaScript như sau:

/*Tạo hàm đếm số lần xuất hiện của một phần tử trong mảng JavaScript*/
function count_element_in_array(array, x){
let count = 0;
for(let i=0;i<array.length;i++){
if(array[i]==x) //Tìm thấy phần tử giống x trong mảng thì cộng biến đếm
count ++;
}
if (count == 1)
console.log( "Phan tu " + x + " xuat hien " + count + " lan");
return count
}

let array= [1,1,2,3,2,5,5,8,9,6];
let solan = 0 ;

/*Xóa phần tử trùng nhau và lấy các phần tử duy nhất*/
let arrayWithNoDuplicates = array.reduce(function (accumulator, element) {
if (accumulator.indexOf(element) === -1) {
accumulator.push(element)
}
return accumulator
}, [])



/*Đếm số phần tử khác nhau trong mảng JavaScript*/
for (let i = 0; i < arrayWithNoDuplicates.length; i++) {
let count = count_element_in_array(array, arrayWithNoDuplicates[i]);

if (count == 1) ++solan;
}

console.log("Số phần tử khác nhau: "+solan);

Kết quả phép đếm số phần tử giống nhau trong mảng JavaScript như sau:

Phan tu 3 xuat hien 1 lan
Phan tu 8 xuat hien 1 lan
Phan tu 9 xuat hien 1 lan
Phan tu 6 xuat hien 1 lan
Số phần tử khác nhau: 4

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn các cách đếm số phần tử trong mảng 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.

URL Link

https://laptrinhcanban.com/javascript/javascript-co-ban-den-nang-cao/mang-trong-javascript/dem-so-lan-xuat-hien-phan-tu-trong-mang-javascript/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

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.