在下面的功能體驗的錯誤,我的代碼返回NaN
,而不是數量。該函數基本上計算第一個最長的字符串的長度,該字符串由k
連續字符串組成 - strarr
。與Math.max和parseInt函數
function longestConsec(strarr, k) {
var n = strarr.length;
if(n === 0 || n < k || k<=0){
return "";
}
else{
var arrI = [0,0,0,0];
var max;
for (var i = 0; i<(strarr.length - k); i++){
for(var j = i; j<(i+k); j++){
arrI[i] += strarr[j].length;
}
}
max = arrI.indexOf(Math.max(arrI));
return Math.max(arrI) //typeof(arrI[i]) for i {0,1,2,3} returns 'number' and arrI.length returns 4
}
}
console.log(longestConsec(["zone", "abigail", "theta", "form", "libe", "zas"], 2), "abigailtheta")
在上面的函數中,我的代碼返回NaN而不是數字。 該函數基本上計算由數組中的k個連續字符串組成的第一個最長字符串的長度 - strarr。但如果我用return Math.max(parseInt(arrI))
替換return Math.max(arrI)
行,那麼我的代碼工作正常。
我的問題是,它不應該的問題,因爲arrI
是數字,而不是字符串數組,但顯然它。爲什麼?