【发布时间】:2021-12-01 16:40:42
【问题描述】:
尝试返回任何给定数字中的最高 5 位数字,即 34858299999234 将返回 99999
我想我已经把它缩小到 for 循环没有正确迭代数组或者“hold1”和“hold2”的值没有更新。
function solution(digits){
//Convert string to array to iterate through
let arr = digits.split("");
let final = 0;
//iterate through the array in 5 sequence steps
for(let i = 0; i < arr.length-1; i++){
let hold1 = arr[i] + arr[i+1] + arr[i+2] + arr[i+3] + arr[i+4];
hold1 = parseInt(hold1,10); //converting string to int so if statement functions correctly
let hold2 = arr[i+1] + arr[i+2]+ arr[i+3] + arr[i+4] + arr[i+5];
hold2 = parseInt(hold2,10);
if(hold1 >= hold2){
final = hold1;
}else{
final = hold2;
}
return final;
}
}
【问题讨论】:
-
How do I ask a good question?: “描述问题。“它不起作用”不足以帮助人们理解您的问题。相反,告诉其他读者预期的结果行为应该是。告诉其他读者错误消息的确切措辞是什么,以及产生它的代码行。"
-
当
i === arr.length - 2(循环中的最后一个值)时,您期望arr[i+3]、arr[i+4]、...是什么? -
无论如何,你似乎都在循环中
return final.. IOW:你的循环完全没有意义。 -
Keith 是对的...将 return 语句移出循环。
标签: javascript for-loop