Home > Net >  How to do dry concept in map function in JavaScript?
How to do dry concept in map function in JavaScript?

Time:01-13

     // 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.

code image

CodePudding user response:

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")
  •  Tags:  
  • Related