Daria pra ter o mesmo resultado com o forEach, ja que é um array?? Mas como acessar propriedades desses elemento do array?
Daria pra ter o mesmo resultado com o forEach, ja que é um array?? Mas como acessar propriedades desses elemento do array?
Olá Laio, tudo bem?
Peço desculpa pela demora em obter uma resposta.
Podemos sim utilizar o forEach
, como essa ferramenta ajuda a trabalhar com cada elemento de uma lista por vez, e nela podemos adicionar alguns parâmetros.
Adicionaremos 2 parâmetros que nos auxiliaram posteriormente quando quisermos tocar mais sons. O parâmetro para representar o elemento da lista tecla
e o outro parâmetro que representa a posição atual da lista index
. Confira no exemplo abaixo:
function tocaSomPom() {
document.querySelector('#som_tecla_pom').play();
}
const listaDeTeclas = document.querySelectorAll('.tecla');
let contador = 0;
listaDeTeclas.forEach(function(tecla, index) {
listaDeTeclas[index].onclick = tocaSomPom;
tocaSomPom(index)
})
Com o uso do forEach
passando a posição do elemento da lista de botões a partir da qual foi clicado, o valor que será passado para a função tocaSomPom
será o correto e o seu código irá funcionar corretamente.
Se for de seu interesse entender mais sobre o forEach
, vou estar deixando, logo abaixo, um artigo da Alura que fala um pouco mais sobre.
Caso tenha mais dúvidas ou problemas com relação a este tópico, estarei à disposição para ajudá-lo. Grande abraço!