업무 내용
1RM 계산법은 아래 평균값 내주는 계산식으로 사용
1RM 공식
export const oneRmFormulas = {
lombardi: (w, r) => w * Math.pow(r, 0.10),
brzycki: (w, r) => w * (36 / (37 - r)),
epley: (w, r) => w * (1 + r / 30),
mayhew: (w, r) => w / (0.522 + 0.419 * Math.exp(-0.055 * r)),
oconner: (w, r) => w * (1 + 0.025 * r),
wathen: (w, r) => w / (0.4880 + 0.538 * Math.exp(-0.075 * r)),
landers: (w, r) => w / (1.013 - 0.0267123 * r),
};
/**
* 평균 1RM 계산기
* @param {number} w - 입력 중량
* @param {number} r - 반복 횟수
* @returns {number} 평균 1RM 추정치
*/
export const calculateAverage1RM = (w, r) => {
const results = Object.values(oneRmFormulas)
.map(fn => fn(w, r))
.filter(val => Number.isFinite(val)); // NaN이나 Infinity 제거
const avg = results.reduce((sum, val) => sum + val, 0) / results.length;
return Number(avg.toFixed(2));
};
JavaScript
복사
하위 업무
기획서 리뷰에 용이하게 정리
마이페이지 디자인 스크린 정리
