/*
The tax rate is often a function of the income or in other words individuals at different income levels will pay different taxes.
Also, in some countries like the UK, individuals get to keep a certain amount of their income
that's not taxed while the remainder is taxed at the applicable rate. So for example, let's say a person makes 100K and their tax rate is 10% or 0.1 but they are allowed to keep 30K. They will end up paying 7000 or 7K in taxes because:
100K - 30K = 70K. // they keep 30K and have 70K left.
10% of 70K = 7K. // they will pay 10% tax on what's left.
Your challenge is to complete the code below to return the function that will correctly calculate taxes for a person based on the rules below.
Amount Tax Rate
--------------------------------------------
<= 100,000 10% or 0.1
> 100,000 to 500,000 (inclusive) 20% or 0.2
> 500,000 35% or 0.3
*/
// Should return a function that accepts a number that's the amount to be taxed
// and returns the tax amount after factoring in the income not taxed and the
// applicable tax rate.
function getTaxCalculator(incomeNotTaxed) {
// your code here (approximately 10 lines)
function calculateTax(amount){
let taxAmount = amount - incomeNotTaxed;
if (amount <= 100000){
taxAmount * 0.1
}else if((amount>100000) && (amount<= 500000)){
taxAmount * 0.2
}else{
taxAmount * 0.3
}
}
return calculateTax
}
// THIS IS FOR YOUR TESTING ONLY.
const calculateTax = getTaxCalculator(30000)
console.log(calculateTax(100000)) // should print 70000
console.log(calculateTax(350000)) // should print 64000
console.log(calculateTax(600000)) // should print 171000
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter