我正在尝试为带有两个数组的kata写一个函数,并将array2
中的值与array1
进行比较,以检查array2
中数字的平方根是否存在于array1
中。
我希望这是有道理的。
我的问题是,如果将以下组合标记为false,而我的代码将其评估为true,则自动测试将检查挑战。
阵列1:[ 2, 2, 3 ]
阵列2:[ 4, 4, 9 ]
从我所看到的,这种组合应该评估为true。 2是4的平方根,而3是9的平方根。
该代码在所有其他情况下均能正常工作。如果测试失败,则仅输入上述内容。
我在数学或解决方案中是否缺少某些内容?
function comp(array1, array2) {
if (!Array.isArray(array1) || !Array.isArray(array2)) {
return false;
}
let result = true;
for (let n of array2) {
if (array1.includes(Math.sqrt(n))) {
continue;
} else {
return false;
}
}
return result;
}
const array1 = [2, 2, 3];
const array2 = [4, 4, 9];
console.log(comp(array1, array2));
最佳答案
简化您的代码,从而避免潜在的错误:
function comp(array1, array2) {
if (!Array.isArray(array1) || !Array.isArray(array2)) {
return false;
}
return array2.some(x => array1.includes(Math.sqrt(x)))
}
const array1 = [2, 2, 3];
const array2 = [4, 4, 9];
console.log(comp(array1, array2));
关于javascript - 在另一个数组中找到n的平方根时, bool 结果不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60671799/