【发布时间】:2022-01-09 23:39:47
【问题描述】:
这是我试图让它工作的代码,问题是它只检查到第 8 个值,然后由于某种原因忽略了其余的值
function a(){
let nums = [12,11,23,22,21,34,33,55,44,43,32,41,100]
let nam;
let b = 1
let a = 0
document.body.innerHTML += "<br>a = "+nums.length
for(let x=0;x<=nums.length;x++){
if(nums[a]>nums[b]){
nam = nums[a]
b++
}else{
nam = nums[b]
a++
}
document.body.innerHTML += "<br>a = "+nums[a]
document.body.innerHTML += "<br>b = "+nums[b]
document.body.innerHTML += "<br>nam = "+nam
}
}
a()
【问题讨论】:
-
我有点困惑;要找到最大值,您是否只需要遍历数组并跟踪找到的最高数字?
x已经是当前数组值的索引(除了偏一错误;JS 数组是零索引的)。 -
如果你的循环只迭代13次是正常的,有时你增加
a,有时你增加b,最后a+b==13,但不太可能@ 987654326@ 或b达到 13。这个逻辑不是你找到最大值的方法。回到绘图板!
标签: javascript arrays for-loop