在JavaScript中找到三个数的最大乘积

我们需要编写一个JavaScript函数,该函数以Numbers数组为唯一。函数应该从该数组中准备三个这样的元素组成的数组,以在该数组的任何三个元素中产生最大的乘积。该函数最终应返回这三个元素的乘积。

例如-

如果输入数组是-

const arr = [-10, 7, 29, 30, 5, -10, -70];

那么输出应该是-

const output = 21000

因为这三个数字分别是30,-10,-70

我们可以看到数组可以或可能包含负元素。因此,在这种情况下,最大乘积将是这两个中的较大者-

min1 * min2 * max1
max1 * max2 * max3

因此,我们将像这样解决它

示例

以下是代码-

const arr = [-10, 7, 29, 30, 5, -10, -70];
const threeProduct = (arr = []) => {
   const sorter = (a, b) => a -b;
   arr.sort(sorter);
   let pro1 = 1, pro2 = 1;
   let len = arr.length - 1;
   for (let i = len; i > len - 3; i--) {
      pro1 = pro1 * arr[i];
   };
   pro2 = arr[0] * arr[1] * arr[len];
   return Math.max(pro1, pro2);
}
console.log(threeProduct(arr));

输出结果

以下是控制台上的输出-

21000