const records = Objectvaluesmedicationsflat const solventTrueRecords = recordsfilterrecord = recordsolvent === true const solventFalseRecords = recordsfilterrecord = recordsolvent ==
可以在processRecord函数中添加一个数组,用于存放每个药品的dosage值,然后将这个数组放到相应的药品的每个日期对象中。修改后的代码如下:
const records = Object.values(medications).flat()
const solventTrueRecords = records.filter((record) => record.solvent === true)
const solventFalseRecords = records.filter((record) => record.solvent === false)
const processRecord = (acc, medication) => {
const {
medicationDate,
medicineName,
dosage,
solvent
} = medication
const date = medicationDate.split(' ')[0]
const medicationInfo = acc[medicineName]?.[date]?.medicationInfo || medication.medicationInfo
const medicineType = acc[medicineName]?.[date]?.medicineType || medication.medicineType
const hour = Number(medicationDate.split(' ')[1].split(':')[0])
// 判断早中晚的
const timeOfDay = hour >= 6 && hour < 12 ? 'morning' : hour >= 12 && hour < 18 ? 'nooning' : 'evening'
const dosageArr = acc[medicineName]?.[date]?.dosageArr || []
const medicationInfoObj = {
medicationInfo,
medicineType,
dosageArr: [...dosageArr, dosage],
morning: acc[medicineName]?.[date]?.morning || 0,
nooning: acc[medicineName]?.[date]?.nooning || 0,
evening: acc[medicineName]?.[date]?.evening || 0,
[timeOfDay]: (acc[medicineName]?.[date]?.[timeOfDay] || 0) + dosage
}
if (!acc[medicineName]) {
acc[medicineName] = {}
}
if (!acc[medicineName][date]) {
acc[medicineName][date] = medicationInfoObj
} else {
acc[medicineName][date] = { ...acc[medicineName][date], ...medicationInfoObj }
}
return acc
}
const resultsTrue = solventTrueRecords.reduce(processRecord, {})
const resultsFalse = solventFalseRecords.reduce(processRecord, {})
const finalResultsTrue = Object.entries(resultsTrue).map(([medicineName, dates]) => ({
medicineName,
...dates,
solvent: true
}))
const finalResultsFalse = Object.entries(resultsFalse).map(([medicineName, dates]) => ({
medicineName,
...dates,
solvent: false
}))
现在,每个药品的日期对象中都有一个dosageArr数组,用于存放该药品每次用药的剂量值
原文地址: http://www.cveoy.top/t/topic/huE9 著作权归作者所有。请勿转载和采集!