πŸ’― TIL) JavaScript μ–΄λ €μ› λ˜ Repl.it 문제 정리 (1)

SolmiiΒ·2020λ…„ 5μ›” 26일
1

JavaScript

λͺ©λ‘ 보기
11/24
post-thumbnail

WeCode 1μ£Όμ°¨ Repl.it 과제둜 λ‚˜μ˜¨ 문제 쀑 μ–΄λ ΅κ±°λ‚˜ μƒˆλ‘œ 배운 λ‚΄μš©μ— λŒ€ν•΄ λ‹€μ‹œ ν•œλ²ˆ μ •λ¦¬ν•΄λ³΄κΈ°λ‘œ ν•œλ‹€!


πŸš₯ Function(ν•¨μˆ˜) - μ—¬λŸ¬ 인자 Assignment

JavaScript의 ν•¨μˆ˜λŠ” μ—¬λŸ¬ 개의 λ§€κ°œλ³€μˆ˜λ₯Ό 지정할 수 μžˆλ‹€.
λ§ˆμ°¬κ°€μ§€λ‘œ, μΈμžλ„ μ—¬λŸ¬ 개 받을 수 μžˆλ‹€.

Q. λ…„, μ›”, 일에 ν•΄λ‹Ήν•˜λŠ” μ„Έ 개의 인자λ₯Ό λ°›λŠ” ν•¨μˆ˜λ₯Ό λ§Œλ“€κ³ , λ“€μ–΄μ˜€λŠ” μΈμžμ— 따라 λ‹€λ₯Έ 값을 return ν•˜λŠ” 문제

처음 풀이

function meetAt(year, month, date) {
  if (year) {
    return `${year}λ…„`;
  } else if ((year, month)) {
    return `${year}λ…„ ${month}μ›”`;
  } else if ((year, month, date)) {
    return `${year}/${month}/${date}`;
  }
}

console.log(meetAt(2020)); // 2020λ…„
console.log(meetAt(2020, 5)); // 2020λ…„
console.log(meetAt(2020, 5, 26)); // 2020λ…„

맨 처음 μž‘μ„±ν•œ μ½”λ“œ! 얼핏 봀을땐 문제 μ—†μ–΄ λ³΄μ˜€λŠ”λ°, console.log 둜 좜λ ₯ν•΄λ³΄λ‹ˆ 3개 λͺ¨λ‘ "2020λ…„" 만 좜λ ₯λœλ‹€.

μ™œ?

2번째 κ²½μš°μ—λŠ” (year) 인자만 μžˆλŠ” κ²½μš°λ‚˜, (year, month) 2개의 μΈμžκ°€ μžˆλŠ” 경우, λ§ˆμ°¬κ°€μ§€λ‘œ 3개의 μΈμžκ°€ μžˆλŠ” 경우 λͺ¨λ‘ 첫번째 if (year) { λŒ€μΆ© λ‚˜λ¨Έμ§€ ν•¨μˆ˜ } 쑰건을 λ§Œμ‘±μ‹œμΌœ 버리기 λ•Œλ¬Έμ— λ‹€μŒ else if 둜 λ„˜μ–΄κ°€μ§€ μ•Šκ³  처음 ν•¨μˆ˜μ˜ return 값인 ${year}λ…„ 만 좜λ ₯λ˜λŠ” 것!

λ‹€μ‹œ μ§šμ–΄λ³΄λŠ” return의 속성!!!

return ν‚€μ›Œλ“œ λ°”λ‘œ λ‹€μŒμ— μ˜€λŠ” 값이 ν•¨μˆ˜ 호좜의 κ²°κ³Όκ°’μœΌλ‘œ λ°˜ν™˜λ˜λ©°, λ°˜ν™˜λ˜λŠ” μ¦‰μ‹œ ν•¨μˆ˜ 싀행이 λλ‚œλ‹€.

κ·Έλž˜μ„œ 처음 return 값인 ${year}λ…„ 이 λ°˜ν™˜λ˜κ³  ν•¨μˆ˜κ°€ λ°”λ‘œ μ’…λ£Œλ˜κΈ° λ•Œλ¬Έμ— λ‚˜λ¨Έμ§€ ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ§€ μ•Šμ•˜λ˜ 것!

λ‚˜μ˜ ν•΄κ²° 방법

function meetAt(year, month, date) {
  if ((year, month, date)) {
    return `${year}/${month}/${date}`;
  } else if ((year, month)) {
    return `${year}λ…„ ${month}μ›”`;
  } else {
    return `${year}λ…„`;
  }
}

console.log(meetAt(2020)); // 2020λ…„
console.log(meetAt(2020, 5)); // 2020λ…„ 5μ›”
console.log(meetAt(2020, 5, 26)); // 2020/5/26

β‡’ μΈμžκ°€ 3개인 경우λ₯Ό λ§Œμ‘±μ‹œν‚¬λ•ŒλΆ€ν„°...
즉, μƒμœ„ if의 쑰건을 더 κΉŒλ‹€λ‘­κ²Œ μ§€μ •ν•˜μ—¬ ν•΄λ‹Ή 쑰건을 λ§Œμ‘±ν•˜μ§€ λͺ»ν•˜λŠ” 경우 λ‹€μŒ 쑰건으둜 λ„˜μ–΄κ°ˆ 수 μžˆλ„λ‘ μˆœμ„œλ₯Ό μ‘°μ •ν–ˆλ‹€!


🍑 Array1

처음 풀이

function getElement() {
  let arr = [3, [4, ["array", 9], 2+3], [0]];
  return arr[1[1[0]]];
}

array μ•ˆμ— arrayμ•ˆμ— arrayμ•ˆμ—.....음...

[ index [ index [ index ] ] ] μ΄λ ‡κ²Œ ν•΄λ³ΌκΉŒ?

undefined 좜λ ₯!!!🀨

λ‚˜μ˜ ν•΄κ²° 방법

function getElement() {
  let arr = [3, [4, ["array", 9], 2+3], [0]];
  return arr[1][1][0];
}

그럼 첫번째 array indexλ₯Ό λ¨Όμ € μ°Ύκ³ , κ·Έλ‹€μŒμ— 찾은 arrayμ•ˆμ—μ„œ λ‹€μ‹œ indexλ₯Ό μ°Ύμ•„κ°€λŠ” μ‹μ΄λ‹ˆκΉŒ [i]도 순차적으둜 λ‚˜μ—΄ν•΄λ³ΌκΉŒ?

였! λ°”λ‘œ μ •λ‹΅πŸ˜»!


πŸ•Ή λ°°μ—΄ μ‘°μž‘ν•˜κΈ°

처음 풀이

function divideArrayInHalf(array) {
  let result = [];
  for (i = array.length-1; i >= 0; i--) {
    if (array[i] <= 10) {
      result.unshift(array[i]);
    } else {
      result.push(array[i]);
    }
    return result;
  }
}

const array1 = [1, 20, 10, 5, 100];
divideArrayInHalf(array1); // [100]

β‡’ λ°°μ—΄μ˜ 맨 λ’€ μš”μ†ŒλΆ€ν„° 맨 μ•ž μš”μ†ŒκΉŒμ§€ μ—­μˆœμœΌλ‘œ μ§„ν–‰λ˜μ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— i κ°’μœΌλ‘œ array.length-1 을 μ§€μ •ν–ˆκ³ , i-- 둜 λ§ˆμ§€λ§‰ λΆ€ν„° μ—­μˆœμœΌλ‘œ μ²΄ν¬ν•˜λ„λ‘ for문을 μž‘μ„±ν–ˆλ‹€.

그리고 array[i]의 값을 λΉ„κ΅ν•΄μ„œ κ·Έ 결과값을 10을 κΈ°μ€€μœΌλ‘œ unshift와 push둜 λ‚˜λˆ„μ—ˆλ‹€.

그런데 κ²°κ³ΌλŠ”...γ… γ…  [100] 만 λ‚˜μ˜΄γ… γ… 

μ™œ?

음... λ°°μ—΄ 맨 λ’€ 값인 100 μ²΄ν¬λŠ” 잘 λœκ²ƒ 같은데...

[100]만 λ°˜ν™˜λ˜κ³  ν•¨μˆ˜κ°€ λλ‚œλ‹€λŠ”κ±΄ for 문을 1번 돌고 return 을 λ§Œλ‚˜μ„œ μ’…λ£Œλœκ±΄κ°€?

function divideArrayInHalf(array) {
  let result = [];
  for (i = array.length-1; i >= 0; i--) {
    if (array[i] <= 10) {
      result.unshift(array[i]);
    } else {
      result.push(array[i]);
    }
    console.log(result); // [100]
    return result;
  }
  console.log(result); // [100]
}

const array1 = [1, 20, 10, 5, 100];
divideArrayInHalf(array1); // [100]

console.log 둜 ν™•μΈν•΄λ³΄λ‹ˆ λ‚΄ 생각이 λ§žλŠ”λ“―?

λ‚˜μ˜ ν•΄κ²° 방법

function divideArrayInHalf(array) {
  let result = [];
  for (i = array.length - 1; i >= 0; i--) {
    if (array[i] <= 10) {
      result.unshift(array[i]);
    } else {
      result.push(array[i]);
    }
  }
  return result;
}

const array1 = [1, 20, 10, 5, 100];
divideArrayInHalf(array1); // [100]

return 의 μœ„μΉ˜λ₯Ό forλ¬Έ λ°–μœΌλ‘œ 빼쀬닀!

κ²°κ³ΌλŠ” λŒ€μ„±κ³΅πŸ˜†
(30λΆ„λ™μ•ˆ λ™λ™λŒ”λŠ”λ° 쬐끔 ν—ˆλ¬΄....)


😳 for 문

처음 풀이

const arr = [20, 200, 23, 1, 3, 9];
let minNumber = arr[0];

function findSmallestElement(arr) {
  if (arr.length < 1) {
    return 0;
  } else {
    for (i = 0; i < arr.length; i++) {
      if (minNumber > arr[i]) {
        minNumber = arr[i];
        return minNumber; // return을 깜빑 ν–ˆλ•…....
      }
    }
  }
}

findSmallestElement(arr); // 1

μ΅œμ†Œκ°’μ„ λ‚˜νƒ€λ‚΄λŠ” minNumber λ³€μˆ˜λ₯Ό 미리 μ •μ˜ν–ˆλ‹€!

그리고 ν•¨μˆ˜ μ„ μ–Έ! μš°μ„  arrκ°€ 빈 λ°°μ—΄ 일 경우, 즉 arr의 길이가 1보닀 μž‘μ€ κ²½μš°λŠ” 0을 빨리 리턴해버리기!

κ·Έ λ‹€μŒμ— for if 문으둜 minNumber(ν˜„μž¬ arr의 첫번째 μš”μ†Œλ‘œ μ„ μ–Έλ˜μžˆμŒ)κ³Ό arr λ°°μ—΄ μ•ˆμ˜ μš”μ†Œλ“€μ„ 각각 λΉ„κ΅ν•˜λ‹€κ°€ minNumber 보닀 μž‘μ€ μš”μ†Œλ₯Ό λ°œκ²¬ν•˜λ©΄ minNumber = arr[i]; 둜 λ³€μˆ˜λ₯Ό μˆ˜μ •ν•œλ‹€.
(λΈ”λ‘œκ·Έλ₯Ό 많이 μ°Έκ³ ν–ˆμŒ! μ΅œλŒ€κ°’ μ°Ύκ±°λ‚˜ λ‹€λ₯Έ κ²½μš°μ—λ„ μœ μš©ν•˜κ²Œ μ΄μš©ν•  수 μžˆμ„ 것 κ°™λ‹Ή!!!)

μ²˜μŒμ— return 을 κΉœλΉ‘ν•΄μ„œ ν•œ 10λΆ„ λ™λ™λŒ”λŠ”λ°.... μ°¨λΆ„ν•˜κ²Œ λ‹€μ‹œ λ³΄λ‹ˆ return 이 λΉ μ Έ μžˆμ—ˆλ‹€. μžλ‚˜κΉ¨λ‚˜ return μ‘°μ‹¬πŸ™ˆπŸ™ˆπŸ™ˆπŸ™ˆπŸ™ˆ

<μ°Έκ³ ν•œ λΈ”λ‘œκ·Έ : https://webisfree.com/2018-01-23/μžλ°”μŠ€ν¬λ¦½νŠΈ-λ°°μ—΄κ°’-μ€‘μ—μ„œ-μ΅œλŒ€κ°’-μ΅œμ†Œκ°’-μ°ΎλŠ”-방법>

β‡’ 그리고 submit 을 ν΄λ¦­ν–ˆλŠ”λ°..!!!

μ™œ?

음... λ³€μˆ˜ μ„ μ–Έ μœ„μΉ˜μ˜ λ¬Έμ œμΈκ²ƒ κ°™λ‹€. (λ‚΄κ°€ 제일 μ•½ν•œ λΆ€λΆ„)

submit ν–ˆμ„λ•Œμ˜ 였λ₯˜ 문ꡬλ₯Ό 보면.... λŒ€μΆ© νŠΉμ • κ²½μš°μ—μ„œ 값이 μ•ˆλ‚˜μ˜¨λ‹€κ³  ν•œλ‹€.

이 ν•¨μˆ˜λŠ” ꢁ극적으둜 minNumber 에 μ €μž₯된 값을 return ν•˜λŠ” ν•¨μˆ˜μΈλ° μƒκ°ν•΄λ³΄λ‹ˆmimNumber 에 arr1[0]; 이라고 값을 지정해 버렸닀...

minNumber λŠ” 인자둜 λ“€μ–΄μ˜€λŠ” arr에 따라 계속 값이 λ°”λ€Œμ–΄μ•Ό ν•˜λ‹ˆ, ν•¨μˆ˜ μ•ˆμ—μ„œ μ„ μ–Έν•˜λ©΄ ν•΄κ²°λ˜μ§€ μ•Šμ„κΉŒ?

ν•œλ²ˆ ν•΄λ³΄μž!!

λ‚˜μ˜ ν•΄κ²° 방법

const arr1 = [20, 200, 23, 3];

function findSmallestElement(arr) {
  if (arr.length === 0) {
    return 0;
  } else {
    let minNumber = arr[0]; // minNumber λ³€μˆ˜λ₯Ό ν•¨μˆ˜ μ•ˆμ—μ„œ μ„ μ–Έ
    for (i = 0; i < arr.length; i++) {
      if (minNumber > arr[i]) {
        minNumber = arr[i];
      } else {
        continue;
      }
    }
    return minNumber;
  }
}

findSmallestElement(arr1);

성곡!!!!πŸ€“


πŸ“š String

처음 풀이

function sliceCityFromAddress(address) {
  let cityIndex = address.indexOf("μ‹œ");
  
  if(cityIndex > -1) {
	  address = address.slice(0, cityIndex-2) + address.slice(cityIndex+2, cityIndex.length);
    return address;
  }
}

let addres1 = "경기도 μ„±λ‚¨μ‹œ 뢄당ꡬ μ€‘μ•™κ³΅μ›λ‘œ 53";
sliceCityFromAddress(addres1); // 경기도 뢄당ꡬ μ€‘μ•™κ³΅μ›λ‘œ 53

β‡’ μ΄λ ‡κ²Œ ν’€μ—ˆλ”λ‹ˆ ν•΄λ‹Ή μ˜ˆμ œλŠ” 잘 λ‚˜μ˜¨λ‹€!

그런데..... μ˜ˆμƒμ™Έμ˜ 볡병ㅠㅠ μ„œμšΈνŠΉλ³„μ‹œ....

μ™œ?

"μ‹œ"λ₯Ό κΈ°μ€€μœΌλ‘œ cityIndex-2 cityIndex+2 둜 μ½”λ“œλ₯Ό μ§°κΈ° λ•Œλ¬Έμ—...

"도" 도 ν•˜λ‚˜, "μ‹œ"도 ν•˜λ‚˜λ‹ˆκΉŒ, "도"와 "μ‹œ"λ₯Ό 각각 indexOf둜 μœ„μΉ˜κ°’μ„ μ•Œμ•„λ‚΄μ„œ slice둜 "도"~"μ‹œ" 사이λ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€λ§Œ λ°˜ν™˜ν•˜λ©΄ λ˜μ§€ μ•Šμ„κΉŒ??

였였였 μ™„μ „ 될거같아!!! μ‹œλ„ν•΄λ³΄μž!!! 🀣🀣🀣🀣

1μ°¨ μ‹œλ„ = μ‹€νŒ¨

function sliceCityFromAddress(address) {
  let cityIndex = address.indexOf("μ‹œ");
  let doIndex = address.indexOf("도");
  
  if(cityIndex > -1) {
    address = address.slice(0, doIndex+2) + address.slice(cityIndex+2, address.length);
    return address;
  }
}

let addres1 = "μ„œμšΈνŠΉλ³„μ‹œ 강남ꡬ ν…Œν—€λž€λ‘œ 427 μœ„μ›Œν¬νƒ€μ›Œ";
sliceCityFromAddress(addres1); // μ„œκ°•λ‚¨κ΅¬ ν…Œν—€λž€λ‘œ 427 μœ„μ›Œν¬νƒ€μ›Œ

γ… γ… .......... μ„œμšΈνŠΉλ³„μ‹œ, λΆ€μ‚°κ΄‘μ—­μ‹œ 처럼 "도"κ°€ μ—†λŠ” μ£Όμ†Œμ˜ κ²½μš°μ—λŠ”, μ΄λ ‡κ²Œ μ‹œμ˜ κΈ€μžκ°€ μž˜λ €μ„œ 보인닀ㅠㅠ

"도"κ°€ μ—†κΈ° λ•Œλ¬Έμ— slice μ‹œμž‘ 기쀀점이 μ—†λŠ” 것....

흠..... 흐음.... "도" λ¬Έμžκ°€ 없을 κ²½μš°λ„ 경우의 수둜 μ΄μš©ν•  수 μžˆμ„ 것 κ°™λ‹€.

"도"κ°€ 없을 λ•Œ = indexOfκ°€ -1 μΌλ•Œ β‡’ γ…‡γ…‡γ…‡γ…‡μ‹œ λ₯Ό λ§ν•œλ‹€κ³  λ³Ό 수 μžˆμ§€ μ•Šμ„κΉŒ?
<μ‹ μ—κ²ŒλŠ” 아직 힘이 남아 μžˆμŠ΅λ‹ˆλ‹€....!>

λ‚˜μ˜ ν•΄κ²° 방법

function sliceCityFromAddress(address) {
  let cityIndex = address.indexOf("μ‹œ");
  let doIndex = address.indexOf("도");
  
  if(doIndex === -1) { // "도"κ°€ 없을 λ•Œ, 즉 νŠΉλ³„μ‹œλ‚˜ κ΄‘μ—­μ‹œμΌ λ•Œ
    address = address.slice(cityIndex+2, address.length);
    return address;
  } else { // ㅇㅇ도 γ…‡γ…‡μ‹œ ν˜•μ‹μΌ λ•Œ
    address = address.slice(0, doIndex+2) + address.slice(cityIndex+2, address.length);
    return address;
  }
}

let addres1 = "μ„œμšΈνŠΉλ³„μ‹œ 강남ꡬ ν…Œν—€λž€λ‘œ 427 μœ„μ›Œν¬νƒ€μ›Œ";
sliceCityFromAddress(addres1); // 강남ꡬ ν…Œν—€λž€λ‘œ 427 μœ„μ›Œν¬νƒ€μ›Œ

μœΌμ•„μ•„μ•… 성곡~!!!!!!!!!!!!🀣

값은 잘 λ‚˜μ™”μ§€λ§Œ 보완해야 ν•  점

function sliceCityFromAddress(address) {
  let cityIndex = address.indexOf("μ‹œ");
  let doIndex = address.indexOf("도");
  
  if(doIndex === -1) { // "도"κ°€ 없을 λ•Œ, 즉 νŠΉλ³„μ‹œλ‚˜ κ΄‘μ—­μ‹œμΌ λ•Œ
    return address.slice(cityIndex+2, address.length);
  } else { // ㅇㅇ도 γ…‡γ…‡μ‹œ ν˜•μ‹μΌ λ•Œ
    return address.slice(0, doIndex+2) + address.slice(cityIndex+2, address.length);
  }
}

let addres1 = "μ„œμšΈνŠΉλ³„μ‹œ 강남ꡬ ν…Œν—€λž€λ‘œ 427 μœ„μ›Œν¬νƒ€μ›Œ";
sliceCityFromAddress(addres1); // 강남ꡬ ν…Œν—€λž€λ‘œ 427 μœ„μ›Œν¬νƒ€μ›Œ

ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ 인자둜 받은 λ³€μˆ˜μ— μƒˆλ‘œμš΄ 값을 λ„£μœΌλ©΄ μ•ˆλ˜λŠ”λ° address = address μ–΄μ©Œκ΅¬ λŒ€μΆ© κΈ΄ μ½”λ“œ 둜 값을 지정해 버리ꡬ 후에 return ν–ˆλ‹€γ… γ… 

μœ„μ˜ μ˜ˆμ‹œμ²˜λŸΌ λ°”λ‘œ return ν•˜λ©΄ λ˜λŠ”λ°...λ°”λΆ€....


⏰ λ‚ μ§œμ™€ μ‹œκ°„

처음 풀이

function getWesternAge(birthday) {
  let rightNow = new Date();
  let thisYear = rightNow.getFullYear();
  let birthYear = birthday.getFullYear();
  let age = thisYear - birthYear;
  
  if(thisYear > birthYear) {
    return age -= 1;
  }
}

let birthday1 = new Date('2009-01-20T03:24:00');
getWesternAge(birthday1);

β‡’ μ²˜μŒμ—λŠ” λ‹¨μˆœν•˜κ²Œ μƒκ°ν•΄μ„œ... λ‚˜μ΄ κ΅¬ν•˜λŠ” κ±°λ‹ˆκΉŒ ν˜„μž¬ 년도와 생일 년도λ₯Ό λ³€μˆ˜ μ„ μ–Έ ν•œ 후에 λ‘˜μ„ λΉ„κ΅ν•˜κ³  만 λ‚˜μ΄ λ‹ˆκΉŒ -1 !! 이라고 생각 ν–ˆλŠ”λ°....

만 λ‚˜μ΄λŠ” 생일을 κΈ°μ€€μœΌλ‘œ λ‚˜μ΄λ₯Ό κ³„μ‚°ν•˜κΈ° λ•Œλ¬Έμ— ν˜„μž¬ μ›”,일과 생일 μ›”,일끼리도 비ꡐ해야 ν–ˆλ‹€!

λ‚˜μ˜ ν•΄κ²° 방법

function getWesternAge(birthday) {
  let rightNow = new Date();
  let birth = new Date(birthday);
  
  let age = rightNow.getFullYear() - birth.getFullYear();
  
  birth.setFullYear(rightNow.getFullYear()); // 생일, ν˜„μž¬ 년도 λ§žμΆ”κΈ° (λ‚ μ§œ 비ꡐλ₯Ό μœ„ν•΄)
  
  if(rightNow > birth) {
    return age; // ν˜„μž¬λ³΄λ‹€ 생일이 μž‘μœΌλ©΄ λ‚˜μ΄!
  } else {
    return age -= 1; // ν˜„μž¬λ³΄λ‹€ 생일이 크면 λ‚˜μ΄ -1
  }
}

birthday1 = "1990-03-21T00:45:06.562Z";
getWesternAge(birthday1);

ꡬ글 폭풍 검색...^^...

λΈ”λ‘œκ·Έμ—μ„œ λ³Έ λ°©λ²•μœΌλ‘œλŠ” setFullYear λΌλŠ” λ©”μ„œλ“œλ₯Ό μ΄μš©ν•΄μ„œ 생일과 ν˜„μž¬ 년도λ₯Ό 맞좘 후에 μ›”,일을 λΉ„κ΅ν•˜λ©΄ λœλ‹€κ³  ν•œλ‹€.

πŸ€ͺλ§Œλ‚˜μ΄ κ³„μ‚°ν•˜λŠ”κ±° μ§„μ§œ ν—·κ°ˆλ¦°λ‹€....γ… γ… 

제일 νž˜λ“€μ—ˆλ˜ 뢀뢄은 else { return age -= 1; // 생일이 μ§€λ‚¬μœΌλ©΄ λ‚˜μ΄ -1 } 여기인데, 생일이 μ§€λ‚¬μœΌλ‹ˆ λ‚˜μ΄+1 이라고 μƒκ°ν–ˆμ§€λ§Œ, λ‚˜μ΄κ°’μΈ age λŠ” μ•žμ—μ„œ rightNow.getFullYear() - birth.getFullYear(); 으둜 이미 κ΅¬ν–ˆκ³ ,

같은 λ…„λ„λ‘œ λ§žμ·„κΈ° λ•Œλ¬Έμ—, ν˜„μž¬ λ‚ μ§œκ°€ 2020λ…„ 5μ›” 29일인데 νƒœμ–΄λ‚œ 날이 2020λ…„ 7μ›” 29일 이라면 β‡’ 아직 생일이 μ•ˆμ§€λ‚œκ²ƒ! β‡’ λ‚˜μ΄ -1

(μ‹€μ œ ν˜„μž¬ λ‚ μ§œ : 2020/5/29 , μ‹€μ œ 생일 : 1981/7/29 이라고 μƒκ°ν•˜λ©΄ 이해가 쉽닀.)

ν˜„μž¬ λ‚ μ§œκ°€ 2020λ…„ 5μ›” 29일인데 νƒœμ–΄λ‚œ 날이 2020λ…„ 3μ›” 29일 이라면 β‡’ 생일이 μ§€λ‚œ 것!

<μ°Έκ³ ν•œ λΈ”λ‘œκ·Έ : https://openwiki.kr/tech/javascriptλ§Œλ‚˜μ΄κ³„μ‚°>

model solution

function getWesternAge(birthday) {
    var today    = new Date();
    var thisYear = 0;
    
    if (today.getMonth() < birthday.getMonth())
        thisYear = 1; // ν˜„μž¬ 월보닀 생일 월이 더 크면 λ‚˜μ΄ -1
    } else if ((today.getMonth() == birthday.getMonth()) && today.getDate() < birthday.getDate()) {
        thisYear = 1; // 월이 κ°™κ³  & ν˜„μž¬ 일보닀 생일 일이 더 크면 λ‚˜μ΄ -1 
    }
    
    var age = today.getFullYear() - birthday.getFullYear() - thisYear;
    
    return age;
}

setFullYear λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ , μ›” getMonth 끼리 λ¨Όμ € λΉ„κ΅ν•˜κ³ , 월이 같은 경우 일 getDate 을 λΉ„κ΅ν–ˆλ‹€.

age κ΅¬ν•˜λŠ”κ±΄ thisYear λΌλŠ” λ³€μˆ˜λ₯Ό μ„ μ–Έν•΄μ„œ 값을 0을 λ„£κ³  생일이 μ•ˆ μ§€λ‚œ 경우만 1을 μ€˜μ„œ μ΅œμ’… κ°’μ—μ„œ λΉΌλŠ” λ°©μ‹μœΌλ‘œ ν–ˆλŠ”λ° 이 방법도 쒋은 것 κ°™λ‹€!!


😡 Number - random number

μ™œ?

이 λ¬Έμ œλŠ” μ•„μ˜ˆ 감도 μ•ˆμ™€μ„œ.... λͺ‡ 번 μ‹œλ„ν•΄λ³΄λ‹€κ°€ ꡬ글에 κ²€μƒ‰ν•΄μ„œ ν’€μ—ˆλ‹€γ… γ… 

< μ°Έκ³ ν•œ λΈ”λ‘œκ·Έ : 이곳 >

Math.floor(Math.random() * (max - min + 1)) + min;

β‡’ μ΅œμ†Œκ°’μ—μ„œ μ΅œλŒ€κ°’ μ‚¬μ΄μ˜ 랜덀 μ •μˆ˜λ₯Ό κ΅¬ν•˜λŠ” 식 (μ΅œμ†Œκ°’, μ΅œλŒ€κ°’ λͺ¨λ‘ 포함)


Math.floor(Math.random() * (max - min) ) + min;

β‡’ μ΅œμ†Œκ°’μ—μ„œ μ΅œλŒ€κ°’ μ‚¬μ΄μ˜ 랜덀 μ •μˆ˜λ₯Ό κ΅¬ν•˜λŠ” 식 (μ΅œμ†Œκ°’λ§Œ 포함, μ΅œλŒ€κ°’ 미만)


Math.floor(Math.random() * 10) + 1; // 1 μ—μ„œ 10κΉŒμ§€μ˜ μ •μˆ˜λ₯Ό 랜덀으둜 λ°˜ν™˜
Math.floor(Math.random() * 100) + 1; // 1 μ—μ„œ 100κΉŒμ§€μ˜ μ •μˆ˜λ₯Ό 랜덀으둜 λ°˜ν™˜
Math.floor(Math.random() * 10); //  0 μ—μ„œ 9κΉŒμ§€μ˜ μ •μˆ˜λ₯Ό 랜덀으둜 λ°˜ν™˜
Math.floor(Math.random() * 11); //  0 μ—μ„œ 10κΉŒμ§€μ˜ μ •μˆ˜λ₯Ό 랜덀으둜 λ°˜ν™˜

κ·Έλƒ₯ ν•„μš”ν• λ•Œλ§ˆλ‹€ κ²€μƒ‰ν•΄μ„œ μ“°λŠ”κ±Έλ‘œ.......πŸ˜“


profile
ν•˜λ£¨λŠ” μΉ˜μ—΄ν•˜κ²Œ 인생은 μ—¬μœ λ‘­κ²Œ

0개의 λŒ“κΈ€