在下面的功能体验的错误,我的代码返回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
是数字,而不是字符串数组,但显然它。为什么?