在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