¿Cómo pongo el valor de 'índice' a una variable global? El valor del índice se muestra solo si está dentro del ciclo forEach, ¿hay alguna forma de sacarlo y ponerlo en una variable global?
stars.forEach((star,index) =>{ star.addEventListener('click', ()=>{ stars.forEach((star,idx) =>{ if(idx < index + 1){ star.classList.add('active'); } else { star.classList.remove('active'); } console.log(index); // this is working }); }); }); console.log(index); // this is NOT workingPor favor revise gracias!
En primer lugar, esto no parece ser una buena idea, pero aquí tienes:
var globalIdx = -1 function fnc() { var functionIdx = -1 stars.forEach((star,index) =>{ star.addEventListener('click', ()=>{ stars.forEach((star,idx) =>{ if(idx < index + 1){ star.classList.add('active'); } else { star.classList.remove('active'); } console.log(index); // this is working globalIdx = index; functionIdx = index; }); }); }); console.log(index); // will not work console.log(globalIdx); // will work console.log(functionIdx); // will work } console.log(globalIdx); // will work console.log(functionIdx); // will not workSimplemente elija uno entre functionIdx y globalIdx según lo que necesite.
Espero que esto ayude :)