我们需要编写一个JavaScript函数,该函数接受任意长度的数字数组并返回其LCM。
我们将分部分解决这个问题-
第1部分-我们将创建一个辅助函数来计算两个数字的最大公约数(GCD)
第2部分-然后使用第1部分的辅助函数,我们将创建另一个辅助函数来计算两个数字的最小公倍数(LCM)。
第3部分-最后,使用第2部分helper函数,我们将创建一个遍历数组并计算数组LCM的函数。
为此的代码将是-
const calculateLCM = (...arr) => { const gcd2 = (a, b) => { //2个整数的最大公约数 if(!b) return b===0 ? a : NaN; return gcd2(b, a%b); }; const lcm2 = (a, b) => { //2个整数的最小公倍数 return a * b / gcd2(a, b); } //整数列表的最小公倍数 let n = 1; for(let i = 0; i < arr.length; ++i){ n = lcm2(arr[i], n); } return n; }; console.log(calculateLCM(12, 18, 7, 15, 20, 24, 28));
输出结果
控制台中的输出将是-
2520