Понимание чего-либо с переменной var - PullRequest
0 голосов
/ 02 сентября 2018

Привет, в этом коде я пытаюсь найти количество раз, максимальное число в массиве:

 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);

когда я помещаю счетчик переменных вне цикла, он работает и показывает 2, но почему? Разве var не становится глобальной переменной и на нее не влияет область действия цикла вроде let?

1 Ответ

0 голосов
/ 02 сентября 2018

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

...