【发布时间】:2018-09-01 21:48:26
【问题描述】:
您好,在这段代码中,我尝试查找最大数在数组中的次数:
x = [1, 2, 2, 4, 2, 4];
for(let i = 0; i <= x.length; i++) {
let temp = x[0];
var count=1;
if(x[i] > temp) {
temp=x[i];
continue;
} else if(x[i] == temp) {
count++;
}
}
console.log(count);
当我使用这样的代码时,计数是 1,这意味着它不会改变,但是:
x = [1,2,2,4,2,4];
var count=1;
for(let i = 0; i <= x.length; i++) {
let temp = x[0];
if(x[i] > temp){
temp = x[i];
continue;
} else if(x[i] == temp) {
count++;
}
}
console.log(count);
当我将 var 计数放在循环之外时,它可以工作并显示 2,但为什么呢? var 不是变成了全局变量,不受像 let 这样的 for 循环作用域的影响吗?
【问题讨论】:
-
仅供参考,您可能可以使用Array.prototype.reduce。
标签: javascript for-loop var