expensetracker.js
- Get link
- X
- Other Apps
// Initial Data
let tableEntries = [     { type: 1, name: "income", amount: 25000 },     { type: 0, name: "rent", amount: 18000 },     { type: 0, name: "food", amount: 5000 }, ];   // Function to update data expense summary function updateSummary() {     let totalIncome = tableEntries.reduce((t, e) => {         if (e.type === 1) t += e.amount;         return t;     }, 0);     let totalExpense = tableEntries.reduce((ex, e) => {         if (e.type === 0) ex += e.amount;         return ex;     }, 0);     updatedInc.innerText = totalIncome;     updatedExp.innerText = totalExpense;     updatedBal.innerText = totalIncome - totalExpense; }     // Function to add new entry to the dataset and expense table  function addItem() {     let type = itemType.value;     let name = document.getElementById("name");     let amount = document.getElementById("amount");       // Input validation     if (name.value === "" || Number(amount.value) === 0)         return alert("Incorrect Input");     if (Number(amount.value) <= 0)         return alert(             "Incorrect amount! can't add negative"        );       // Push new data     tableEntries.push({         type: Number(type),         name: name.value,         amount: Number(amount.value),     });       updateTable();     name.value = "";     amount.value = 0; }   // Function to load all entry in the expense table function loadItems(e, i) {     let cls;       let table = document.getElementById("table");     let row = table.insertRow(i + 1);     let cell0 = row.insertCell(0);     let cell1 = row.insertCell(1);     let cell2 = row.insertCell(2);     let c3 = row.insertCell(3);     let c4 = row.insertCell(4);     cell0.innerHTML = i + 1;     cell1.innerHTML = e.name;     cell2.innerHTML = e.amount;     c4.innerHTML = "☒";     c4.classList.add("zoom");     c4.addEventListener("click", () => del(e));     if (e.type == 0) {         cls = "red";         c3.innerHTML = "➚";     } else {         cls = "green";         c3.innerHTML = "➘";     }     c3.style.color = cls; }   // Clear the table before updation function remove() {     while (table.rows.length > 1) table.deleteRow(-1); }   // Function to delete a specific entry function del(el) {     remove();     tableEntries = tableEntries.filter(         (e) => e.name !== el.name     );     tableEntries.map((e, i) => loadItems(e, i));     updateSummary(); }   // To render all entries function updateTable() {     remove();     tableEntries.map((e, i) => {         loadItems(e, i);     });     updateSummary(); }   updateTable();- Get link
- X
- Other Apps
 
 
Comments
Post a Comment