css 我如何修复我的函数以正确识别偶数数组中的奇数?[关闭]

n3h0vuf2  于 2023-05-30  发布在  其他
关注(0)|答案(1)|浏览(122)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
6天前关闭
Improve this question
我创建了一个函数,实际上是两个,第一个检查数组是否为偶数,第二个做两件事:在偶数数组中查找奇数数(如果数组是偶数),并在奇数数组中查找偶数数(如果数组是奇数)。但是在第一种情况下(即当我在偶数数字数组中找到奇数数字时),并针对测试用例(即[0,1,2])运行它,它输出0而不是1。

function isMostlyEven(array, thresholdPercentage) {
    let evenCount = 0;
    let totalCount = 0;
  
    for (let i = 0; i < array.length; i++) {
        if (array[i] % 2 === 0) {
            evenCount++;
        }
        totalCount++;
    }
  
    const evenPercentage = (evenCount / totalCount) * 100;
  
    if (evenPercentage >= thresholdPercentage) {
        return true;
    }else {
        return false;
    }
}
  
function findOutlier(integers){
    if (isMostlyEven(integers, 80)) {
        for (let i = 0; i < integers.length; i++) {
            const int = Math.abs(integers[i]);
            if (int % 2 === 1) { // searches an arr of even nums for odd nums
                return int; // where the error is; that is returns 0 instead of 1(the odd num);
            }
        }   
    } else if (!isMostlyEven(integers, 80)) {
        for (let i = 0; i < integers.length; i++) {
            const int = Math.abs(integers[i]);
            if (int % 2 === 0) { // searches an arr of odd nums for even nums
                return int;
            }
        }
    }
}

const intArr = [0, 1, 2]; // should output 1 not 0
console.log(findOutlier(intArr));
pxy2qtax

pxy2qtax1#

它输出0而不是1的原因是evenPercentage将始终低于80%,直到intArr的长度大于4。若要使用80 thresholdPercentage表示大部分偶数,则数组必须至少包含4个偶数。

相关问题