Java Script
WorkAround
Jassy
2020. 8. 19. 11:18
1-8
//employee.js
let Employee = {
salary: 100000
};
let payGrades = {
entryLevel: { taxMultiplier: .05, benefits: ['health'], minSalary: 10000, maxSalary: 49999 },
midLevel: { taxMultiplier: .1, benefits: ['health', 'housing'], minSalary: 50000, maxSalary: 99999 },
seniorLevel: { taxMultiplier: .2, benefits: ['health', 'housing', 'wellness', 'gym'], minSalary: 100000, maxSalary: 200000 }
};
Employee.getCadre = function () {
if (Employee.salary >= payGrades.entryLevel.minSalary && Employee.salary <= payGrades.entryLevel.maxSalary) {
return 'entryLevel';
} else if (Employee.salary >= payGrades.midLevel.minSalary && Employee.salary <= payGrades.midLevel.maxSalary) {
return 'midLevel';
} else return 'seniorLevel';
}
Employee.calculateTax= function () {
return payGrades[Employee.getCadre()].taxMultiplier * Employee.salary;
}
Employee.getBenefits= function () {
return payGrades[Employee.getCadre()].benefits.join(', ');
}
Employee.calculateBonus= function() {
return .02 * Employee.salary;
}
Employee.reimbursementEligibility=function () {
let reimbursementCosts = { health: 5000, housing: 8000, wellness: 6000, gym: 12000 };
let totalBenefitsValue = 0;
let employeeBenefits = payGrades[Employee.getCadre()].benefits;
for (let i = 0; i < employeeBenefits.length; i++) {
totalBenefitsValue += reimbursementCosts[employeeBenefits[i]];
}
return totalBenefitsValue;
}
export default Employee ;
//WorkAround.js
import Employee from './employee';
function getEmployeeInformation(inputSalary) {
Employee.salary = inputSalary;
console.log('Cadre: ' + Employee.getCadre());
console.log('Tax: ' + Employee.calculateTax());
console.log('Benefits: ' + Employee.getBenefits());
console.log('Bonus: ' + Employee.calculateBonus());
console.log('Reimbursement Eligibility: ' + Employee.reimbursementEligibility() + '\n');
}
8-14
//employee.js
let Employee = {
salary: 100000
};
let payGrades = {
entryLevel: { taxMultiplier: .05, benefits: ['health'], minSalary: 10000, maxSalary: 49999 },
midLevel: { taxMultiplier: .1, benefits: ['health', 'housing'], minSalary: 50000, maxSalary: 99999 },
seniorLevel: { taxMultiplier: .2, benefits: ['health', 'housing', 'wellness', 'gym'], minSalary: 100000, maxSalary: 200000 }
};
function getCadre () {
if (Employee.salary >= payGrades.entryLevel.minSalary && Employee.salary <= payGrades.entryLevel.maxSalary) {
return 'entryLevel';
} else if (Employee.salary >= payGrades.midLevel.minSalary && Employee.salary <= payGrades.midLevel.maxSalary) {
return 'midLevel';
} else return 'seniorLevel';
}
function calculateTax() {
return payGrades[getCadre()].taxMultiplier * Employee.salary;
}
function getBenefits() {
return payGrades[getCadre()].benefits.join(', ');
}
function calculateBonus() {
return .02 * Employee.salary;
}
function reimbursementEligibility() {
let reimbursementCosts = { health: 5000, housing: 8000, wellness: 6000, gym: 12000 };
let totalBenefitsValue = 0;
let employeeBenefits = payGrades[getCadre()].benefits;
for (let i = 0; i < employeeBenefits.length; i++) {
totalBenefitsValue += reimbursementCosts[employeeBenefits[i]];
}
return totalBenefitsValue;
}
export { Employee, getCadre as cadre, calculateTax as tax, getBenefits as benefits, calculateBonus as bonus, reimbursementEligibility as reimbursement };
//workAround.js
import { Employee, cadre, tax, benefits, bonus, reimbursement } from './employee';
function getEmployeeInformation(inputSalary) {
Employee.salary = inputSalary;
console.log('Cadre: ' + cadre());
console.log('Tax: ' + tax());
console.log('Benefits: ' + benefits());
console.log('Bonus: ' + bonus());
console.log('Reimbursement Eligibility: ' + reimbursement() + '\n');
}
getEmployeeInformation(10000);
getEmployeeInformation(50000);
getEmployeeInformation(100000);
15-17
// employee.js
let Employee = {
salary: 100000
};
export let payGrades = {
entryLevel: { taxMultiplier: .05, benefits: ['health'], minSalary: 10000, maxSalary: 49999 },
midLevel: { taxMultiplier: .1, benefits: ['health', 'housing'], minSalary: 50000, maxSalary: 99999 },
seniorLevel: { taxMultiplier: .2, benefits: ['health', 'housing', 'wellness', 'gym'], minSalary: 100000, maxSalary: 200000 }
};
export function getCadre () {
if (Employee.salary >= payGrades.entryLevel.minSalary && Employee.salary <= payGrades.entryLevel.maxSalary) {
return 'entryLevel';
} else if (Employee.salary >= payGrades.midLevel.minSalary && Employee.salary <= payGrades.midLevel.maxSalary) {
return 'midLevel';
} else return 'seniorLevel';
}
export function calculateTax() {
return payGrades[getCadre()].taxMultiplier * Employee.salary;
}
export function getBenefits() {
return payGrades[getCadre()].benefits.join(', ');
}
export function calculateBonus() {
return .02 * Employee.salary;
}
export function reimbursementEligibility() {
let reimbursementCosts = { health: 5000, housing: 8000, wellness: 6000, gym: 12000 };
let totalBenefitsValue = 0;
let employeeBenefits = payGrades[getCadre()].benefits;
for (let i = 0; i < employeeBenefits.length; i++) {
totalBenefitsValue += reimbursementCosts[employeeBenefits[i]];
}
return totalBenefitsValue;
}
export default Employee;
//workAround.js
import { getCadre, calculateTax, getBenefits, calculateBonus, reimbursementEligibility } from './employee';
import Employee from './employee';
function getEmployeeInformation(inputSalary) {
Employee.salary = inputSalary;
console.log('Cadre: ' + getCadre());
console.log('Tax: ' + calculateTax());
console.log('Benefits: ' + getBenefits());
console.log('Bonus: ' + calculateBonus());
console.log('Reimbursement Eligibility: ' + reimbursementEligibility() + '\n');
}
getEmployeeInformation(10000);
getEmployeeInformation(50000);
getEmployeeInformation(100000);