描述
我有一个任务:
创建一个函数,将数字数组作为参数,并返回传递数组中所有数字的公约数数组。
我的代码如下:
function devidersForArr([...m]) {
let array = [];
function dividers(n) {
for (let i = 1; i <= n; i++) {
if (m.every((v) => v % i === 0)) array.push(i);
}
}
m.forEach((v, i, a) => (a[i] = dividers(v)));
return array;
}
console.log(devidersForArr([8, 12, 16]));
问题
在我看来,我在某个地方犯了错误,结果是不正确的。是否可以简化代码?我尝试了不同的选项,但这是有效的)
我们迭代从 1 到数组中最大数字的数字。如果数组的所有元素都可以被这些数字整除而没有余数,则我们将除数放入结果数组中。我们假设数组包含自然数。