JSFiddle - React, Tailwind, and code Playground

by Krishna Ananthi

TypeScript

var lakh = 100000;
var normalCitizenSlab=[{range:[0,2*lakh], slab:0},{range:[2*lakh,5*lakh], slab:10},{range:[5*lakh,10*lakh], slab:20},{range:[10*lakh,], slab:30}]

function calculateIncomeTax(age, gender, income) {
  const genderArray = ["Male", "Female", "Transgender"];
  if (age <= 0) return "Please enter age in positive";
  if (genderArray.indexOf(gender) === -1) return "Please enter proper gender";
  if (income <= 0) return "Income should be atleast greater than 0";
  if (age < 60) {
    return normalCitizen(income);
  } else if (age >= 60 && age < 80) {
    return seniorCitizen(income)
  } else if (age > 80) {
    return superSeniorCitizen(income);
  }
}

function normalCitizen(income) {
  console.log("normal" + income);
  if (income <= 2*lakh) {
    return 0;
  } else if (income > 2*lakh && income <= 5*lakh) {
    income = income - 2*lakh;
    let tax = (10 * income) / 100;
    return tax;
  } else if (income >5*lakh && income <= 10*lakh) {
    income = income - 2*lakh;
    let tax = (10 * 3*lakh) / 100 + (income * 20) / 100;
    return tax;
  } else if (income > 10*lakh) {
    income = income - 2*lakh;
    return (
      (10 * 3*lakh) / 100 + (20 * 5*lakh) / 100 + ((income - 8*lakh) * 30) / 100
    );
  }
}

function seniorCitizen(income) {
  console.log("senior" + income);
  if (income <= 2.5*lakh) {
    return 0;
  } else if (income > 2.5*lakh && income <= 5*lakh) {
    income = income - 2.5*lakh;
    let tax = (10 * income) / 100;
    return tax;
  } else if (income > 5*lakh && income <= 10*lakh) {
    income = income - 2.5*lakh;
    let tax = (10 * 3*lakh) / 100 + (income * 20) / 100;
    return tax;
  } else if (income > 10*lakh) {
    income = income - 2.5*lakh;
    return (
      (10 * 3*lakh) / 100 + (20 * 5*lakh) / 100 + ((income - 8*lakh) * 30) / 100
    );
  }
}

function superSeniorCitizen(income) {
  console.log("super" + income);
  if (income <= 5*lakh) {
    return 0;
  } else if (income > 5*lakh && income <= 10*lakh) {
    income = income...