const array = [9,12,27]; // 辗转相除法 function gcd(a, b) { return a % b === 0 ? b : arguments.callee(b, a % b); } // 两两求最大公约数 while (array.length > 1) { array.push(gcd(array.pop(), array.pop())) } // 最后一个数即所求 console.log(array[0]); // 3