繁体   English   中英

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

[英]Hackerrank Algorithms Challenge Problem - showing type error in hackerrank environment (node) but works fine on the browser console. Whats wrong?

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(让i = 0; i <ar.length; i ++){

TypeError:无法在BirthdayCakeCandles读取未定义的属性“ length”(solution.js:30:28)

有什么解释吗?

该函数仅接受一个参数,而不接受两个。 查看它的调用方式:

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

let result = birthdayCakeCandles(ar);

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

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

function birthdayCakeCandles(ar) {

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

阅读“功能说明”:

功能说明

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

BirthdayCakeCandles具有以下参数:

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

期望只有一个参数而不是两个。

function birthdayCakeCandles(ar) {


}  // function from hackerRank question

因此,您需要删除n 由于您将ar作为第二个参数,因此结果是未定义的,原因是函数调用中仅传递了一个参数,该参数将映射到n

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM