簡體   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