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