Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Fiz de outra maneira, gostaria que avaliassem por favor.

Fiz um array com os IDS dos sons. com o .bind(null,i) passei o índice como argumento. Na função tocaSom(i) declarei o índice obtido na função clicar para chamar os elementos e tocar o som correspondente a cada elemento.

let sonsTeclas = ['#som_tecla_pom', '#som_tecla_clap', '#som_tecla_tim', '#som_tecla_puff', '#som_tecla_splash', '#som_tecla_toim', '#som_tecla_psh', '#som_tecla_tic', '#som_tecla_tom']

const listaDeTeclas = document.querySelectorAll('.tecla');

function clicar() { for (i = 0; i < sonsTeclas.length; i++) { listaDeTeclas[i].onclick = tocaSom.bind(null, i); // Passa o índice como argumento } } function tocaSom(i) { document.querySelector(sonsTeclas[i]).play(); // Reproduz o som do índice correspondente }

3 respostas
solução!

Olá Filipe, tudo bem?

Pelo que entendi, você criou um array com os IDs dos sons e utilizou a função .bind para passar o índice como argumento na função tocaSom(i), que reproduz o som correspondente ao índice obtido na função clicar.

Essa é uma maneira interessante de resolver o problema, utilizando o array para armazenar os IDs dos sons e a função .bind para passar o índice como argumento. Além disso, o código está bem organizado e fácil de entender.

Parabéns pela solução criativa e obrigado por compartilhar com a comunidade! Espero ter ajudado e bons estudos!

Foi isso mesmo! Obrigado pela resposta! Tmj

Que bom que conseguiu resolver. Fico feliz em ajudar :)