🐶 Đếm Array🐶

Đếm số lượng tất cả các phần tử có trong mảng hai chiều

Trong bài này là ví dụ về đếm mảng 2 chiều và hổn hợp
js_masterGiải Thuật
cau-truc-du-lieu-va-giai-thuat.jpg

Chào các bạn

Trong bài viết này mình sẽ hướng dẫn các bạn làm bài tập.

  • Đếm số lượng tất cả các phần tử có trong mảng hai chiều.

Giải Thuật

Trước khi bắt đầu mình cũng nói trước mảng 2 chiều cho các bạn dễ hình dung nhé.

1let arr = [
2    [1, 2, 3],
3    [4, 5, 6],
4    [7, 8, 9]
5]

Ví dụ trên chính là mảng 2 chiều.

Cũng như các bài tập khác. Chúng ta cũng sẽ đi từng bước cho các bạn mới học dể hình dung nhé.

  1. Viết chức năng

Chức năng này chỉ việc đếm tất cả các phần tử trong mảng 2 chiều. Nên chúng ta cũng đặt tên sao cho đúng với việc nó làm nhé.

1function getCountArr(arr) {
2    if (!Array.isArray(arr)) {
3        throw new Error(`Kiểu ${typeof arr} không phải là mảng`);
4    }
5
6    let count = arr.reduce((tong, value) => {
7        if (Array.isArray(value)) {
8            tong += value.length;
9        } else {
10            tong += 1;
11        }
12        return tong;
13    }, 0);
14
15    return count;
16}

Chức năng chúng ta chỉ cần có vậy. Tuy không hoàn hảo nhưng đủ để đưa ra kết quả.

  1. Gọi chức năng

Việt gọi chức năng thì rất đơn giản. Cái này thì ai mà chả biết. Đơn nhiên nếu bạn mới học thì sẽ ko biết. Hi

1let countArr = getCountArr(arr);

Chúng ta bạo biến countArr dùng lưu trử kết quả mà cuộc gọi chức năng getCountArr(arr) trả về.

arr ở đây chính là mảng đầu vào của chúng ta

  1. Ví dụ hoàn chỉnh
1let arr = [
2    [1, 2, 3],
3    [4, 5, 6],
4    [7, 8, 9],
5];
6
7function getCountArr(arr) {
8    if (!Array.isArray(arr)) {
9        throw new Error(`Kiểu ${typeof arr} không phải là mảng`);
10    }
11
12    let count = arr.reduce((tong, value) => {
13        if (Array.isArray(value)) {
14            tong += value.length;
15        } else {
16            tong += 1;
17        }
18        return tong;
19    }, 0);
20
21    return count;
22}
23
24let countArr = getCountArr(arr);
25
26console.log(countArr); // 9

Rất đơn giản đúng không các bạn. Nói chung nhiều cách lắm. Quan trọng chúng ta có đầu vào như thế nào. Nếu muốn chắc chắn hơn nữa thì làm cái chức năng kiểm tra đó có phải là mảng 2 chiều không.

Rất rất là nhiều thứ cần phải kiểm tra nếu chúng ta cần chính xác.

Cách trên ko hoàn hảo nếu có nhiều giá trị lồng nhau sâu nữa. Nếu vậy thì các bạn dùng cách này nhé. Đơn giản cực kỳ.

1let arr = [
2    [1, 2, 3],
3    [4, 5, [2, 3], 6],
4    [7, 8, 9, [6, 4, [1, 2]]],
5    1,
6    3
7];
8
9function getCountArr(arr) {
10    if (!Array.isArray(arr)) {
11        throw new Error(`Kiểu ${typeof arr} không phải là mảng`);
12    }
13
14    return arr.flat(Infinity).length;
15}
16
17let countArr = getCountArr(arr);
18
19console.log(countArr); // 17

Vậy là xong. Bạn nhìn đầu vào là thấy.

Tổng kêt

Trong bài viết này mình đã hướng dẫn các bạn đếm tất cả số lượng các phần tử có trong mảng 2 chiều.

Đi cùng với đó là ví dụ phức tạp hơn. Hỗn hợp

  • đếm
  • giải thuật
  • mảng

OFFJS.COM - Blog học tập giải trí - 🐲

Chia sẻ nhiều kiến thức thú vị trong lập trình cũng như cuộc sống.

Giới thiệu


Trang web này mình sẽ nói về kiến thức lập trình và cuộc sống mà các bạn mới học hay đang dự định học. Có một bước đi đầu đời vững chắc.

Hồ Quang Trí.jpg

Đi kèm với đó là những lý thuyết và các dòng code minh họa. Để các bạn dễ hình dung.

Đơn nhiên cũng không dễ dàng ngày một ngày hai mà học hết được.

Học Tập Là Một Con Đường Dài Vô Tận

Nó sẽ nuốt các bạn vô số thời gian nhưng bù lại khi đã biết thì mọi thứ thật là tuyệt.

1console.log("Hồ Quang Trí");

Nếu có ai nói bạn học lập trình trong vòng 3 đến 6 tháng thì mình xin nói thật không bao giờ có chuyện đó nhé.

Chúc các bạn thành công.

Chân trang

phone-toan-phat.png

0353210168

address-toan-phat.png

Việt Nam