JSFiddle - React, Tailwind, and code Playground

by borisjavier

HTML

<!DOCTYPE html>

    <input type="hidden" id="tir" value="15">
    <input type="text" id="investi" value="1000">
    <div id="result"></div>

JavaScript

document.addEventListener('DOMContentLoaded', function() {
            // Valores desde el DOM
            const valorPresente = parseFloat(document.getElementById('investi').value);
            const tir = parseFloat(document.getElementById('tir').value) / 100; // Convertir a decimal

            // Variables definidas en el script
            const perTot = 3; // Ejemplo: 3 años
            const unitPer = 1; // Ejemplo: pagos mensuales
            const totalSeconds = perTot * 31536e3;
            const numPagos = Math.floor(totalSeconds / (unitPer * 2592e3));

            // Tasa de interés mensual
            const tasaMensual = tir / 12;

            // Calcular el valor futuro
            const valorFuturo = valorPresente * Math.pow((1 + tasaMensual), (12 * perTot));

            // Calcular el valor de cada pago
            const valorPago = valorFuturo / numPagos;
            
            let acumulado = [];
            let sumaAcumulada = 0;
            for (let i = 0; i < numPagos; i++) {
                sumaAcumulada += valorPago;
                acumulado.push(sumaAcumulada.toFixed(2));
            }

            // Mostrar resultados
            console.log('Valor Futuro:', valorFuturo);
            console.log('Número de Pagos:', numPagos);
            console.log('Valor de Cada Pago:', valorPago);
console.log('Arreglo: ', JSON.stringify(acumulado))

            // Mostrar resultados en el DOM
            document.getElementById('result').innerHTML = `
                <p>Valor Futuro: ${valorFuturo}</p>
                <p>Valor de Cada Pago: ${valorPago}</p>
                <p>Acumulado de Pagos: ${acumulado.join(', ')}</p>
            `;
        });