Computer >> Máy Tính >  >> Lập trình >> Javascript

Trả về tích lớn nhất có thể có của n số từ mảng trong JavaScript

Chúng tôi bắt buộc phải viết một hàm JavaScript lấy một mảng Numbers làm đối số đầu tiên và một số, chẳng hạn như n, làm đối số thứ hai.

Hàm của chúng ta sẽ tính toán và trả về tích lớn nhất có thể có của n số từ mảng.

Ví dụ

Mã cho điều này sẽ là -

const getHighestProduct = (arr, num) => {
   let prod = 1;
   const sorter = (a, b) => a - b;
   arr.sort(sorter);
   if (num > arr.length || num & 2 && arr[arr.length - 1] < 0) {
      return;
   };
   if (num % 2) {
      prod = arr.pop();
      num--;
   };
   while (num) {
      prod *= arr[0] * arr[1] > arr[arr.length - 2] * arr[arr.length - 1]
      ? arr.shift() * arr.shift() : arr.pop() * arr.pop();
      num -= 2;
   };
   return prod;
}
console.log(getHighestProduct([1, 10, -5, 1, -100], 3));
console.log(getHighestProduct([3, 4, 5, 6, 7], 3));
console.log(getHighestProduct([3, 4, -5, -6, -7], 3));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

5000
210
168