привет в этом коде я пытаюсь найти, сколько раз максимальное число находится в массиве:
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.info(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.info(count);
когда я вывожу количество переменных за пределы цикла, он работает и показывает 2, но почему? Разве var не становится глобальной переменной и на нее не влияет область действия цикла for, такая как let?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если var count=1; - это внутри цикла, count устанавливается (то есть сбрасывается) на 1 каждый раз, когда цикл начинается заново, что приводит к тому же числу счетчиков каждый раз, когда цикл визуализируется. Вот почему вы должны поместить этот перед в цикл.
К вашему сведению, вы, вероятно, могли бы использовать для этого Array.prototype.reduce.