Chúng ta cần viết một hàm JavaScript nhận vào một mảng các số làm đối số duy nhất. Hàm nên tính tổng tất cả các số trong mảng và tích của tất cả các số. Sau đó hàm nên trả về giá trị tuyệt đối của hiệu giữa tổng và tích.
Ví dụ
Dưới đây là mã nguồn:
const arr = [1, 4, 1, 2, 1, 6, 3]; const sumProductDifference = (arr = []) => { const creds = arr.reduce((acc, val) => { let { sum, product } = acc; sum += val; product *= val; return { sum, product }; }, { sum: 0, product: 1 }); const { sum, product } = creds; return Math.abs(sum - product); }; console.log(sumProductDifference(arr));Kết quả
Đầu ra trên console:
126
Giải thích: Mảng [1,4,1,2,1,6,3] có tổng = 18, tích = 144. |18 - 144| = 126. Hàm dùng reduce một lần duyệt để tính cả hai.