[英]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.