// last 7 days data from db...
let last7Days = result.map((data)=>data._id).slice(1).slice(-7)
let last7daysIncome = result.map((data) => data.totalIncomeAmount).slice(1).slice(-7)
let last7daysAvgIncome = result.map((data)=> data.avrageIncome).slice(1).slice(-7)
let last7daysPatientionsCount = result.map((data)=> data.PatientionsCount).slice(1).slice(-7)
let last7disease = result.map((data)=>data.diseaseArr).slice(1).slice(-7)
How to I simplify this code with DRY Concept in JavaScript?
And thanks.
>Solution :
Create a function, send in the parameter for the field you want to extract, and even the number of days to look back:
function lastDays(result, field, days) {
return result.map((data)=>data[field]).slice(1).slice(days);
}
function lastSevenDays(result, field) {
return lastDays(result, field, -7);
}
let last7Days = lastSevenDays(result, "_id")
let last7daysIncome = lastSevenDays(result, "totalIncomeAmount")
let last7daysAvgIncome =lastSevenDays(result, "avrageIncome")
let last7daysPatientionsCount = lastSevenDays(result, "PatientionsCount")
let last7disease = lastSevenDays(result, "diseaseArr")