Tính giá trị trung bình trong javascript năm 2024

Một ngày đẹp trời nọ, sếp giao một cục dữ liệu và yêu cầu bạn truy vấn, thống kê đơn giản một vài thứ hay thậm chí là chế biến, xào nấu lại dữ liệu. Có rất nhiều công cụ có thể giúp bạn làm việc này như Excel chẳng hạn. Không may, bạn là một developer chỉ ăn ngủ với code chứ chưa đụng vào Excel bao giờ. Tuy nhiên, nếu có một chút kỹ năng JavaScript, bạn cũng có thể thực hiện việc này một cách dễ dàng và nhanh chóng.

Mục lục

1. Tại sao lại là JavaScript?

JavaScript cung cấp các hàm xử lý mảng rất hiệu quả và hữu ích. Hơn nữa, việc có thể sử dụng các hàm này ngay trên DevTool của trình duyệt cũng khiến cho thao tác của bạn nhanh hơn và dễ hơn. Trong bài này, mình sẽ hướng dẫn bạn thực hiện một số thao tác truy vấn, thống kê dùng các hàm xử lý mảng của JavaScript.

Giả sử mình có một tập dữ liệu sinh viên đơn giản, mỗi sinh viên có các thuộc tính:

  • id: Mã số sinh viên
  • name: Họ và tên sinh viên
  • school: Trường đại học
  • gpa: Điểm trung bình

Nào bắt đầu thôi :D

Trước hết, mở DevTool của trình duyệt và khai báo dữ liệu nhé!

js

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

Sau khi khai báo xong, ta đã có biến

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

4 chứa dữ liệu.

Xem giá trị một biến trong DevTool

Có thể sử dụng

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

5 để show dữ liệu dạng bảng

Xem giá trị dữ liệu dạng bảng

2. Lọc và đếm các phần tử với điều kiện

Yêu cầu đầu tiên: Tìm các học sinh đến từ trường UIT.

Với yêu cầu này, bạn có thể lọc ra các phần tử có thuộc tính

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

6 bằng cách sử dụng hàm

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

7. Tham số đầu vào là một hàm trả về điều kiện nhận, cùng thử nào!

data.filter[function [element] {
    return element.school == "UIT";
}];

Hoặc có thể viết gọn hơn dùng cú pháp của

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

8.

data.filter[[e] => e.school == "UIT"];

Yêu cầu: Đếm các học sinh đến từ trường UIT.

Tương tự, bạn lọc ra các phần tử có thuộc tính

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

6 và sau đó sử dụng thuộc tính

data.filter[function [element] {
    return element.school == "UIT";
}];

0 để đếm số lượng.

data.filter[[e] => e.school == "UIT"].length;

Cùng thử những điều kiện phức tạp hơn nhé.

Yêu cầu: Tìm các học sinh đến từ trường UIT mà có điểm >= 5.0.

Đơn giản chỉ việc thêm điều kiện

data.filter[function [element] {
    return element.school == "UIT";
}];

1 vào.

data.filter[[e] => e.school == "UIT" && e.gpa >= 5.0];

Yêu cầu: Tìm các học sinh có điểm >= trung bình cộng của danh sách học sinh.

Ở đây chúng ta cần tính trung bình cộng

data.filter[function [element] {
    return element.school == "UIT";
}];

2 của danh sách rồi dùng

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

7 để lọc lấy tập dữ liệu mong muốn.

Có thể tính trung bình cộng bằng cách cộng tất cả

data.filter[function [element] {
    return element.school == "UIT";
}];

2, sau đó chia cho

data.filter[function [element] {
    return element.school == "UIT";
}];

0. Phương thức

data.filter[function [element] {
    return element.school == "UIT";
}];

6 có thể giúp chúng ta tính tổng

data.filter[function [element] {
    return element.school == "UIT";
}];

2 nhanh. Phương thức này dùng để thực thi một hàm lên từng phần tử và một biến tích lũy để thu về một giá trị duy nhất. Tham số đầu vào của

data.filter[function [element] {
    return element.school == "UIT";
}];

6 là hàm thực thi và giá trị khởi tạo. Trong hàm thực thi, tham số đầu tiên là biến cộng dồn, còn lại là phần tử của mảng.

let avgGpa = data.reduce[[acc, currElement] => acc + currElement.gpa, 0] / data.length;
// Biến `acc` là biến cộng dồn.
// Biến currElement là phần tử hiện tại của mảng.
// Tham số cuối là 0, biểu thị cho giá trị khởi tạo.
// Hàm thực thi ở đây sẽ cộng biến cộng dồn với `gpa` của mỗi phần tử để ra tổng `gpa`.
// Sau đó chia cho `length` để lấy kết quả trung bình cộng `gpa`.

Vậy chúng ta có thể thực hiện yêu cầu trên như sau:

data.filter[[e] => e.gpa >= [data.reduce[[a, c] => a + c.gpa, 0] / data.length]];

Túm lại là:

  • Bạn có thể dùng

    let data = [

    {  
        id: "00001",  
        name: "Nguyễn Văn A",  
        school: "BKU",  
        gpa: 9.7  
    },{  
        id: "00002",  
        name: "Nguyễn Thị B",  
        school: "UIT",  
        gpa: 7.56  
    },{  
        id: "00003",  
        name: "Bành Văn Bưởi",  
        school: "KHTN",  
        gpa: 8.54  
    },{  
        id: "00004",  
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",  
        school: "UIT",  
        gpa: 6.5  
    },{  
        id: "00005",  
        name: "Bành Thị Mận",  
        school: "BKU",  
        gpa: 7.3  
    },{  
        id: "00006",  
        name: "Nguyễn Thị Mau Ra",  
        school: "NV",  
        gpa: 9.2  
    },{  
        id: "00007",  
        name: "Công Tôn Sách",  
        school: "KHTN",  
        gpa: 7.8  
    },{  
        id: "00008",  
        name: "Phở Thị Hủ Tiếu",  
        school: "BKU",  
        gpa: 6.15  
    },{  
        id: "00009",  
        name: "Bèo Văn Bọt",  
        school: "UIT",  
        gpa: 4.3  
    },{  
        id: "00010",  
        name: "Đồng Hồ Cát",  
        school: "UIT",  
        gpa: 9.5  
    },  
    
    ]

    7 để lọc lấy dữ liệu với một điều kiện cụ thể.
  • Dùng

    data.filter[function [element] {

    return element.school == "UIT";  
    
    }];

    0 để lấy số lượng phần tử.
  • Dùng

    data.filter[function [element] {

    return element.school == "UIT";  
    
    }];

    6 khi muốn tính toán ra 1 giá trị duy nhất dựa trên tất cả các phần tử.

3. Biến đổi phần tử

Yêu cầu: Lấy mã sinh viên của những sinh viên BKU

Chúng ta sẽ lọc ra sinh viên có

data.filter[[e] => e.school == "UIT"];

2 trước và sau đó lấy ra

data.filter[[e] => e.school == "UIT"];

3 bằng phương thức

data.filter[[e] => e.school == "UIT"];

4. Phương thức này giúp tạo ra một mảng mới với các phần tử là kết quả từ việc thực thi một hàm lên từng phần tử của mảng được gọi. Tham số đầu vào của

data.filter[[e] => e.school == "UIT"];

4 là một hàm thực thi việc biến đổi dữ liệu cho mỗi phần tử.

data.filter[[e] => e.school == "BKU"].map[[f] => f.id];

Yêu cầu: Lấy mã sinh viên và tên của những sinh viên BKU

Ở yêu cầu trước chỉ trả về

data.filter[[e] => e.school == "UIT"];

3, yêu cầu này chúng ta sẽ trả về một object có 2 thuộc tính là

data.filter[[e] => e.school == "UIT"];

3 và

data.filter[[e] => e.school == "UIT"];

8.

data.filter[[e] => e.school == "BKU"].map[[f] => [{ id: f.id, name: f.name }]];

  • Dùng

    data.filter[[e] => e.school == "UIT"];

    4 để biến đổi dữ liệu bạn nhé.
  • Có thể dùng với

    let data = [

    {  
        id: "00001",  
        name: "Nguyễn Văn A",  
        school: "BKU",  
        gpa: 9.7  
    },{  
        id: "00002",  
        name: "Nguyễn Thị B",  
        school: "UIT",  
        gpa: 7.56  
    },{  
        id: "00003",  
        name: "Bành Văn Bưởi",  
        school: "KHTN",  
        gpa: 8.54  
    },{  
        id: "00004",  
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",  
        school: "UIT",  
        gpa: 6.5  
    },{  
        id: "00005",  
        name: "Bành Thị Mận",  
        school: "BKU",  
        gpa: 7.3  
    },{  
        id: "00006",  
        name: "Nguyễn Thị Mau Ra",  
        school: "NV",  
        gpa: 9.2  
    },{  
        id: "00007",  
        name: "Công Tôn Sách",  
        school: "KHTN",  
        gpa: 7.8  
    },{  
        id: "00008",  
        name: "Phở Thị Hủ Tiếu",  
        school: "BKU",  
        gpa: 6.15  
    },{  
        id: "00009",  
        name: "Bèo Văn Bọt",  
        school: "UIT",  
        gpa: 4.3  
    },{  
        id: "00010",  
        name: "Đồng Hồ Cát",  
        school: "UIT",  
        gpa: 9.5  
    },  
    
    ]

    7 để lọc và biến đổi giá trị cho phù hợp.

4. Tìm ra các phần tử phân biệt

Yêu cầu: Đếm số lượng trường đại học xuất hiện trong tập dữ liệu trên

Có thể thấy trong tập dữ liệu trên, có thể có nhiều sinh viên thuộc về một trường đại học. Nhiệm vụ của chúng ta là xác định một trường đại học có xuất hiện trong tập dữ liệu trên hay không.

Nếu biết nhiều cấu trúc dữ liệu khác nhau, chúng ta có thể xác định dùng

data.filter[[e] => e.school == "UIT"].length;

1 để chứa các trường học. Set là cấu trúc dữ liệu chứa các phần tử không trùng nhau. Như vậy, chúng ta sẽ dùng

data.filter[[e] => e.school == "UIT"];

4 để lấy thông tin trường học. Sau đó bỏ vào

data.filter[[e] => e.school == "UIT"].length;

1 để loại bỏ những trường học trùng nhau. Cuối cùng là đếm số lượng phần tử trong

data.filter[[e] => e.school == "UIT"].length;

1.

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

0

Viết gọn lại như sau:

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

1

  • Có thể dùng

    data.filter[[e] => e.school == "UIT"].length;

    1 để loại bỏ các phần tử trùng.
  • Để lấy được

    data.filter[function [element] {

    return element.school == "UIT";  
    
    }];

    0 của một

    data.filter[[e] => e.school == "UIT"].length;

    1 cần chuyển nó thành mảng. Vì

    data.filter[[e] => e.school == "UIT"].length;

    1 là một object

5. Sắp xếp, đảo ngược danh sách

Yêu cầu: Sắp xếp danh sách sinh viên tăng dần theo điểm

Phương thức

data.filter[[e] => e.school == "UIT"].length;

9 sẽ giúp đơn giản hóa thao tác này.

Tham số đầu vào là một hàm so sánh. Lưu ý về giá trị trả về của hàm so sánh nhé. Tham khảo tại đây

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

2

Phương thức

data.filter[[e] => e.school == "UIT"].length;

9 sẽ làm biến đổi thứ tự của mảng nên để giữ lại mảng hiện tại, chúng ta cần tạo 1 mảng mới bằng spread operator

data.filter[[e] => e.school == "UIT" && e.gpa >= 5.0];

1.

Yêu cầu: Đảo ngược danh sách sinh viên ban đầu

Chúng ta sử dụng

data.filter[[e] => e.school == "UIT" && e.gpa >= 5.0];

2 để đảo ngược thứ tự 1 mảng. Tương tự như

data.filter[[e] => e.school == "UIT"].length;

9,

data.filter[[e] => e.school == "UIT" && e.gpa >= 5.0];

2 cũng làm thay đổi trên chính mảng đó, để giữ lại mảng cũ, chúng ta cũng tạo mảng mới bằng spread operator nhé.

let data = [ 
    {
        id: "00001",
        name: "Nguyễn Văn A",
        school: "BKU",
        gpa: 9.7
    },{
        id: "00002",
        name: "Nguyễn Thị B",
        school: "UIT",
        gpa: 7.56
    },{
        id: "00003",
        name: "Bành Văn Bưởi",
        school: "KHTN",
        gpa: 8.54
    },{
        id: "00004",
        name: "Công Tằn Tôn Nữ Thị Rằn Ri",
        school: "UIT",
        gpa: 6.5
    },{
        id: "00005",
        name: "Bành Thị Mận",
        school: "BKU",
        gpa: 7.3 
    },{
        id: "00006",
        name: "Nguyễn Thị Mau Ra",
        school: "NV",
        gpa: 9.2
    },{
        id: "00007",
        name: "Công Tôn Sách",
        school: "KHTN",
        gpa: 7.8
    },{
        id: "00008",
        name: "Phở Thị Hủ Tiếu",
        school: "BKU",
        gpa: 6.15
    },{
        id: "00009",
        name: "Bèo Văn Bọt",
        school: "UIT",
        gpa: 4.3
    },{
        id: "00010",
        name: "Đồng Hồ Cát",
        school: "UIT",
        gpa: 9.5
    },
]

3

  • Dùng

    data.filter[[e] => e.school == "UIT"].length;

    9 để sắp xếp 1 mảng theo 1 điều kiện.
  • Dùng

    data.filter[[e] => e.school == "UIT" && e.gpa >= 5.0];

    2 để đảo ngược mảng.

6. Kết luận

Bài viết cũng khá dài rồi nên mình tạm dừng ở đây nhé. Trong phần tiếp theo mình sẽ hướng dẫn một số thủ thuật thú vị nữa để truy vấn và thống kê với JavaScript.

Nếu các bạn biết thêm về các thủ thuật khác thì hãy chia sẻ với mình thông qua bình luận bên dưới nhé.

Chủ Đề