首页 > 解决方案 > Hackerrank 算法挑战问题 - 在hackerrank 环境(节点)中显示类型错误,但在浏览器控制台上工作正常。怎么了?

问题描述

function birthdayCakeCandles(n, ar) {
let max = 0;
for(let i = 0; i < ar.length; i++) {
    if(ar[i] > max) {
        max = ar[i];
    }
}
let count = 0;
for(let i = 0; i < ar.length; i++) {
    if(ar[i] === max) {
        count++;
    }
}
return count;
}

这可以在浏览器控制台上完美运行,但是当我在 Hackerrank 环境(节点)中运行它时,它会抛出这个错误:

运行时错误:

错误 (stderr) solution.js:30 for (let i = 0; i < ar.length; i++) {

TypeError:无法在生日蛋糕蜡烛时读取未定义的属性“长度”(solution.js:30:28)

有什么解释吗?

标签: javascriptalgorithm

解决方案


该函数只接受一个参数,而不是两个。看看它是如何调用的:

https://www.hackerrank.com/challenges/birthday-cake-candles/problem

let result = birthdayCakeCandles(ar);

因此,如果您定义birthdayCakeCandles接受第二个参数(或第一个参数之外的任何其他参数),它们将始终为undefined.

不确定您的n参数是什么,但您应该删除它:

function birthdayCakeCandles(ar) {

并且您的代码通过了所有测试用例。

阅读“功能说明”:

功能说明

在下面的编辑器中完成函数birthdayCakeCandles。它必须返回一个整数,表示她可以吹灭的蜡烛数量。

生日蛋糕蜡烛具有以下参数:

ar:代表蜡烛高度的整数数组


推荐阅读