Estoy tratando de cambiar un valor de matriz que está dentro de una función de mi botón. Quiero que cambie el primer número de la matriz, pero parece que no puedo hacerlo funcionar
Así que quiero que mi HTML pase de esto:
<button onclick="skillUpgrade([50,5])">Upgrade your skill</button>A esto:
<button onclick="skillUpgrade([55,5])">Upgrade your skill</button>Aquí está mi javascript
function skillUpgrade(el) { roundDown = Math.floor(money / el[0]); if (memes >= el[0] * checkTimes) { baseClicks = baseClicks + (el[1] * checkTimes); money = money - (el[0] * checkTimes); newPrice = el[0] * 1.1; el[0] = newPrice; console.log(el[0]) document.getElementById("moneyAmount").innerHTML = money; } }Por lo general , no es una buena idea usar controladores de eventos en línea. Aquí hay un ejemplo reproducible mínimo . Utiliza un atributo de datos para almacenar valores dentro del botón y la delegación de eventos para manejar el clic del botón.
document.addEventListener(`click`, handle); function handle(evt) { // do something if the click originated from button#upgradeSkill if (evt.target.id === "upgradeSkill") { const btn = evt.target; const currentValue = btn.dataset.values.split(`,`) .map(Number); // ^ convert values to Number currentValue[0] += 5; // reset the values // note: the array is automatically converted back to string btn.dataset.values = currentValue; } } #upgradeSkill:after { content: ' (current 'attr(data-values)')'; } <button id="upgradeSkill" data-values="50,5">Upgrade your skills</button>