๐Ÿ™‚BMI ๊ณ„์‚ฐ๊ธฐ

An ji yoonยท2023๋…„ 5์›” 2์ผ
0

JS ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ

๋ชฉ๋ก ๋ณด๊ธฐ
2/3



โœ๏ธ๊ธฐ๋Šฅ๊ฐœ๋ฐœ


BMI ๊ณ„์‚ฐ๊ธฐ ๊ธฐ๋Šฅ๊ฐœ๋ฐœ์—๋Š” ํฌ๊ฒŒ ์„ธ๊ฐ€์ง€ ๋ชฉํ‘œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

  • 01 ๊ณ„์‚ฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„๋•Œ ์กฐ๊ฑด๋ฌธ์„ ํ†ตํ•ด์„œ ํ•ด๋‹น ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๊ฒƒ
  • 02 ํ™”์‚ดํ‘œ๊ฐ€ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ์ด๋™ํ•˜๋Š” ์• ๋‹ˆ๋ฉ”์ด์…˜
  • 03 ์ดˆ๊ธฐํ™” ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„๋•Œ 0์œผ๋กœ ๋Œ์•„์˜ค๋Š”๊ฒƒ

์œ„ ๋ชฉํ‘œ์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ๊ฐœ๋ฐœ์„ ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.



01. ๊ณต๋ฐฑ๋ž€ ๊ฒ€์‚ฌํ•˜๊ธฐ


๋จผ์ € ์กฐ๊ฑด๋ฌธ์„ ์ด์šฉํ•ด **INPUT**์— ์ ์ ˆํ•œ ๊ฐ’์ด ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ๊ณต๋ฐฑ๋ž€ ๊ฒ€์‚ฌ๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค.
var height = document.getElementById('height');
var weight = document.getElementById('weight');

document.querySelector('#answer').addEventListener('click', function(){
  let hgv = height.value; // ์‹ ์žฅ ์ž…๋ ฅ๊ฐ’ ๋ฐ›์•„์˜ค๊ธฐ
  let wgv = weight.value; // ์ฒด์ค‘ ์ž…๋ ฅ๊ฐ’ ๋ฐ›์•„์˜ค๊ธฐ

  // ๊ณต๋ฐฑ๋ž€ ํ™•์ธ ํ•˜๊ธฐ
  if(hgv == ''|| isNaN(hgv)){
    alert('์˜ฌ๋ฐ”๋ฅธ ์‹ ์žฅ์„ ์ž…๋ ฅํ•˜์„ธ์š”');
  }
  else if(wgv == '' || isNaN(wgv)){
    alert('์˜ฌ๋ฐ”๋ฅธ ์ฒด์ถฉ์„ ์ž…๋ ฅํ•˜์„ธ์š”');
  }
  // ์ธํ’‹๊ฐ’์ด ์ˆซ์ž๊ฐ€ ์•„๋‹๊ฒฝ์šฐ์— ๊ฒฝ๊ณ ์ฐฝ ๋„์šฐ๊ธฐ

02. bmi๊ณ„์‚ฐ์‹ ๋งŒ๋“ค๊ธฐ


๋ณ€์ˆ˜์— ํ•„์š”ํ•œ ์‹์„ ํ• ๋‹นํ•˜์—ฌ ์กฐ๊ฑด์‹์œผ๋กœ ์ง„ํ–‰์‹œํ‚ฌ๊ฒƒ์„ ์ค€๋น„ํ•œ๋‹ค.
// bmi ๊ณ„์‚ฐ ์‹
let bmi =(wgv / (hgv * hgv) * 10000).toFixed(1);


// ํ”„๋กœ๊ทธ๋ ˆ์Šค ๋ฐ”
const progressEl = document.getElementById("bmi-progress");
progressEl.value = bmi;


// ํฌ์ธํ„ฐ
const point = document.getElementById('pointer');

let bmiR = document.getElementById('koR');
const bmiN = document.getElementById('numR');


03. ์กฐ๊ฑด๋ฌธ ์ž‘์„ฑํ•˜๊ธฐ


์œ„์—์„œ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ๊ฒƒ์„ ๊ฐ€์ง€๊ณ  ํ•„์š”ํ•œ ์กฐ๊ฑด์‹์„ ์ž‘์„ฑํ•ด ์ถฉ์กฑํ•˜๋„๋ก ํ•œ๋‹ค.
// bmi ๋ฒ”์œ„ ์„ค์ •
if (bmi <= 18.5) {
  progressEl.classList.add('under');
  const pt = progressEl.value = (bmi / 18.5 * 25).toFixed(1); 
  // 0๋ถ€ํ„ฐ ํ•ด๋‹น ๊ฐ’๊นŒ์ง€ ์ฑ„์šฐ๋„๋ก ์ˆ˜์ •
  
  point.style.left = `${pt}%`;
  // ์œ„์—์„œ ๋ฐ›์•„์˜จ ๊ฐ’ ๋งŒํผ ํ™”์‚ดํ‘œ๊ฐ€ ์ด๋™
  
  bmiR.innerHTML = bmi;
  bmiN.innerHTML = '์ €์ฒด์ค‘ ์ž…๋‹ˆ๋‹ค.';
}
else if (bmi <= 22.9) {
  progressEl.classList.add('normal');
  const pt = progressEl.value = ((bmi) / 22.9 * 50).toFixed(1); 
  // 25๋ถ€ํ„ฐ ํ•ด๋‹น ๊ฐ’๊นŒ์ง€ ์ฑ„์šฐ๋„๋ก ์ˆ˜์ •
  
  point.style.left = `${pt}%`;
  bmiR.innerHTML = bmi;
  bmiN.innerHTML = '์ •์ƒ ์ž…๋‹ˆ๋‹ค.';
}
else if (bmi <= 30) {
  progressEl.classList.add('over');
  const pt = progressEl.value = ((bmi) / 30 * 75).toFixed(1); 
  // 50๋ถ€ํ„ฐ ํ•ด๋‹น ๊ฐ’๊นŒ์ง€ ์ฑ„์šฐ๋„๋ก ์ˆ˜์ •
  
  point.style.left = `${pt}%`;
  bmiR.innerHTML = bmi;
  bmiN.innerHTML = '๊ฒฝ๋„๋น„๋งŒ ์ž…๋‹ˆ๋‹ค.';
}
else if (bmi <= 40) {
  progressEl.classList.add('last');
  const pt = progressEl.value = ((bmi) / 40 * 100).toFixed(1);; 
  // 75๋ถ€ํ„ฐ ํ•ด๋‹น ๊ฐ’๊นŒ์ง€ ์ฑ„์šฐ๋„๋ก ์ˆ˜์ •
  
  point.style.left = `${pt}%`;
  bmiR.innerHTML = bmi;
  bmiN.innerHTML = '์ค‘์ฆ๋„ ๋น„๋งŒ ์ž…๋‹ˆ๋‹ค.';
}
else {
  progressEl.classList.add('last');
  console.log('์ธก์ •๋ถˆ๊ฐ€');
}
  • const pt = progressEl.value = (bmi / 18.5 * 25).toFixed(1);
    ํ”„๋กœ๊ทธ๋ž˜์Šค ๋ฐ”์˜ ์ „์ฒด๊ฐ’์„ 4๋“ฑ๋ถ„ ํ•˜์—ฌ ์ •ํ™•ํžˆ 1/4 ๋˜๋Š” ๋ถ€๋ถ„๋งŒ bmi ์˜์—ญ์œผ๋กœ ๋‘๊ณ 
    ์ €์ฒด์ค‘์ผ๋•Œ๋Š” ๊ทธ ์˜์—ญ ์•ˆ์—์„œ๋งŒ ํ™”์‚ดํ‘œ๊ฐ€ ์ง„ํ–‰๋˜์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๊ฐ™์€ ์‹์„ ์ž‘์„ฑํ–ˆ๋‹ค.


โœจ๊ฒฐ๊ณผ


profile
์‹ค์Œ์—์„œ ํ”„์—”๊นŒ์ง€

0๊ฐœ์˜ ๋Œ“๊ธ€