Soma, concatena sem quere

estou aprendendo javaScript, e me deparei com uma situação inesperada, ao tenta somar no console ele concatena, qual a solução ?

  1. const array = ['a', 'b', 'c']
    
  2. for(i in array){
    
  3.     console.log(`${array[i]} . ${i + 1}`)
    
  4.    }
    

já tentei sem o template string, porém o meu problema ainda continua.

Esse for é usado para iterar em propriedades de um objeto, daí o i é uma string. Para arrays, use o forEach do array mesmo:

array.forEach( (elemento,index) => console.log(`${elemento} . ${index + 1}`) );

realmente funcionou, mas o termo que você usou “iterar” oque seria ?

Nesse sentido o mais semelhante seria percorrer, você está passando por cada propriedade de um objeto, e a variável i vai assumir o valor de cada propriedade, uma de cada vez, a cada iteraçao, ou seja, a cada rodada do loop.