NỘI DUNG BÀI VIẾT
Đôi khi, mình muốn tính tổng và trung bình của các phần tử trong một mảng JavaScript.
Trong bài viết này, mình sẽ giúp bạn biết cách tính tổng và trung bình của các phần tử trong một mảng JavaScript.
Sử dụng một vòng lặp để tính tổng và trung bình của các phần tử
Bạn có thể sử dụng vòng lặp for-of để lặp qua một mảng để cộng tất cả các số lại với nhau để tính tổng.
Sau đó, để tính giá trị trung bình, bạn có thể chia tổng cho độ dài của mảng.
Ví dụ, bạn có thể viết:
const arr = [1, 2, 3]
let sum = 0;
for (const a of arr) {
sum += a;
}
const avg = sum / arr.length;
console.log(sum)
console.log(avg)
Code language: JavaScript (javascript)
Mình tạo một mảng gồm 3 phần tử 1, 2, 3.
Sau đó, mình xác định biến sum
và khởi tạo nó thành 0.
Tiếp theo, mình thêm vòng lặp for-of để lặp qua các phần tử của arr
.
Trong phần thân của vòng lặp, mình cộng giá trị a
vào sum
.
Sau đó, mình tạo biến avg
và gán thương số của sum
và arr.length
cho nó.
Do đó, sum
là 6 và avg
là 2.
Sử dụng phương thức Array.prototype.reduce() để tính tổng và trung bình của các phần tử
Bạn cũng có thể sử dụng phương thức Array.prototype.reduce() để tính tổng.
Sau đó, bạn có thể tính giá trị trung bình theo cách tương tự như ví dụ trước.
Ví dụ, bạn có thể viết:
const arr = [1, 2, 3]
const sum = arr.reduce((partialSum, a) => partialSum + a, 0)
const avg = sum / arr.length;
console.log(sum)
console.log(avg)
Code language: JavaScript (javascript)
Phương thức reduce
này nhận một callback có partialSum
và a
.
partialSum
là tổng của phần tử được trả về mỗi khi cộng các phần tử arr
.
Callback trả về tổng từng phần tử.
Đối số thứ 2 là giá trị ban đầu của sum
.
Phần còn lại của đoạn mã giống nhau và bạn nhận được kết quả tương tự như ví dụ trước.
Tính tổng các phần tử trong mảng JavaScript bằng forEach
forEach trong JavaScript vốn được sử dụng để duyệt các phần tử trong mảng theo thứ tự.
Do vậy bạn cũng hoàn toàn có thể sử dụng forEach để tính tổng các phần tử trong mảng JavaScript như sau:
let num = [48, 75, 92, 61, 54, 83, 76];
let sum = 0;
num.forEach(function(element){
sum += element;
});
console.log(sum); //489
Code language: JavaScript (javascript)
Ngoài forEach, bạn cũng có thể sử dụng bất cứ hàm hay phương thức có tác dụng giống như forEach là lấy phần tử trong mảng theo thứ tự. Ví dụ như là Array map hoặc Array filter chẳng hạn.
Ví dụ đối với Array map, bạn đã biết phương thức này vốn có tác dụng tạo mảng mới từ các phần tử trong mảng JavaScript. Tuy nhiên thì Array map cũng có thể xử lý tuần tự các phần tử trong mảng ban đầu, nên nếu bỏ đi chức năng tạo mảng mới thì bạn hoàn toàn có thể dùng nó tương tự như forEach để tính tổng phần tử trong mảng ban đầu như sau:
let num = [48, 75, 92, 61, 54, 83, 76];
let sum = 0;
num.map(function(element){
sum += element;
});
console.log(sum); //489
Code language: JavaScript (javascript)
Chuyện này cũng hoàn toàn tương tự như với Array filter, bạn bỏ đi chức năng chính mà chỉ sử dụng tới chức năng xử lý tuần tự phần tử là có thể tiến hành tính tổng phần tử trong mảng ban đầu bằng Array filter như dưới đây:
let num = [48, 75, 92, 61, 54, 83, 76];
let sum = 0;
num.filter(function(element){
sum += element;
});
console.log(sum); //489
Code language: JavaScript (javascript)
Phương thức tổng và trung bình của các phần tử bằng Lodash
Lodash có phương thức sum
trả về tổng của một mục nhập mảng.
Phương thức mean
này trả về giá trị trung bình của các mục nhập mảng.
Ví dụ, bạn có thể viết:
const arr = [1, 2, 3]
const sum = _.sum(arr)
const avg = _.mean(arr)
console.log(sum)
console.log(avg)
Code language: JavaScript (javascript)
Cả hai phương thức đều lấy mảng mà bạn muốn thực hiện tính toán làm đối số.
Sau đó, mình nhận được kết quả tương tự như trước đây.
Kết luận
Trên đây là một số cách làm để tính tổng và trung bình của các phần tử trong mảng JavaScript. Bạn hãy chọn ra 1 cách quen thuộc và ứng dụng vào mã nguồn của mình nhé!
Cảm ơn bạn đã theo dõi bài viết!
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.
TỔNG HỢP TÀI LIỆU HỌC LẬP TRÌNH CƠ BẢN CHO NGƯỜI MỚI BẮT ĐẦU
KHOÁ HỌC BOOTCAMP JAVA/JAVASCRIPT/PHP TRỞ THÀNH LẬP TRÌNH VIÊN TRONG 5-6 THÁNG