TIL # 3

μ •μŠΉμ˜₯(seungok)Β·2021λ…„ 2μ›” 18일
0

TIL

λͺ©λ‘ 보기
3/16
post-thumbnail

πŸ‘€ 였늘 뭘 ν–ˆμ„κΉŒ?

  • μ˜€μ „μ— repl.it λͺ»ν•œκ±° λ§ˆμ € ν–ˆλ‹€
  • μ˜€ν›„μ— λ°±μ—”λ“œμ— λŒ€ν•΄ μžμ„Ένžˆ μ„€λͺ…ν•΄μ£Όμ…¨λŠ”λ° ν”„λ‘ νŠΈκ°€ 더 μ’‹μ•„μ‘Œλ‹€.
  • 남은 μ‹œκ°„ CSS λ ˆμ΄μ•„μ›ƒ 이해 μ•ˆκ°€λŠ” λΆ€λΆ„ 볡슡!

😳 였늘 뭘 곡뢀 ν–ˆμ„κΉŒ?

1. μΆ”κ°€λœ String λ©”μ†Œλ“œ

const email = 'abc@gmail.com';

console.log(email.starstWith('ab')); // true
console.log(email.endsWith('com')); // true
console.log(email.includes('mail')); // true
  • startsWith : μ–΄λ–€ νŠΉμ • 문자둜 μ‹œμž‘ν•˜λŠ”μ§€
  • endsWith : μ–΄λ–€ νŠΉμ • 문자둜 λλ‚˜λŠ”μ§€
  • includes : μ–΄λ–€ νŠΉμ • ν¬ν•¨ν•˜λŠ”μ§€

2. map λ©”μ†Œλ“œ ν™œμš©

const formatDate = dates => {
  const answer = dates.map(date => {
    const dateArr = date.split('-');
    const result = dateArr.map((date,index)=>{
      if(index === 0)
        return date + 'λ…„';
      else if(index === 1)
        return date + 'μ›”';
      else
        return date + '일';
    }).join(' ');
    return result;
  });
  console.log(answer); // ex) ['2020λ…„ 01μ›” 01일', '2021λ…„ 01μ›” 01일']
  return answer;
}
  • YYYY-MM-DD νƒ€μž…μ„ YYYYλ…„ MMμ›” DD일둜 λ³€κ²½ν•˜λŠ” 문제
  • λ¬Έμžμ—΄ date λ₯Ό split λ©”μ†Œλ“œλ‘œ λ°°μ—΄ ν˜•νƒœλ‘œ λ³€κ²½
  • map λ©”μ†Œλ“œλ‘œ 배열을 돌며 - 문자λ₯Ό μ°Ύκ³  μˆœμ„œλŒ€λ‘œ λ…„, μ›”, 일 둜 λ°”κΏˆ
  • λ°°μ—΄ μˆœν™˜μ΄ λλ‚˜λ©΄ join λ©”μ†Œλ“œλ‘œ 곡백문자 κ΅¬λΆ„μžλ₯Ό μΆ”κ°€ν•˜μ—¬ λ¬Έμžμ—΄λ‘œ λ³€κ²½
  • λ³€κ²½λœ λ¬Έμžμ—΄μ„ λ°˜ν™˜ν•˜μ—¬ κΈ°μ‘΄ λ¬Έμžμ—΄κ³Ό λ³€κ²½

3. 객체 πŸ‘‰ λ°°μ—΄ λ³€ν™˜

const myObj = {
  one: "1",
  two: "2",
};

console.log(Object.keys(myObj)); // ['one', 'two']
console.log(Object.values(myObj)); // ['1', '2']
console.log(Object.entries(myObj)); // [['one', '1'], ['two','2']]
  • Object.keys() λ©”μ†Œλ“œλŠ” 객체의 keyλ₯Ό λ°°μ—΄λ‘œ λ°˜ν™˜
  • Object.values() λ©”μ†Œλ“œλŠ” 객체의 valueλ₯Ό λ°°μ—΄λ‘œ λ°˜ν™˜
  • Object.entries() λ©”μ†Œλ“œλŠ” 객체의 key, valueλ₯Ό ν•¨κ»˜ 이차원 λ°°μ—΄λ‘œ λ°˜ν™˜

4. 객체, 배열을 ν™œμš©ν•œ μ„±μ ν‘œ 문제

const scores = {
  μƒν™œμ†μ˜νšŒκ³„: "C",
  논리적글쓰기: "B",
  λ…μΌλ¬Έν™”μ˜μ΄ν•΄: "B+",
  κΈ°μ΄ˆμˆ˜ν•™: "D+",
  인지심리학: "A+",
};
const charScores = Object.values(scores); // 문자 점수만 λ°°μ—΄λ‘œ μ „ν™˜
const pointScores = charScores.map((score) => {
  if (score === "A+") return 4.5;
  else if (score === "A") return 4;
  else if (score === "B+") return 3.5;
  else if (score === "B") return 3;
  else if (score === "C+") return 2.5;
  else if (score === "C") return 2;
  else if (score === "D+") return 1.5;
  else return 1;
}); // 배열을 μˆœνšŒν•˜λ©° 숫자 점수둜 λ³€κ²½

let index = 0;
for (const key in scores) {
  scores[key] = pointScores[index];
  index++;
} // 객체λ₯Ό μˆœνšŒν•˜λ©° 숫자 점수둜 valueλ₯Ό λ³€κ²½

const subjects = Object.keys(scores);
const requireClass = ["μ˜μ–΄νšŒν™”", "κΈ°μ΄ˆμˆ˜ν•™", "κ³΅ν•™μˆ˜ν•™", "μ»΄ν“¨ν„°κ³Όν•™κ°œλ‘ "];

const filterClass = requireClass
  .map((subject) => {
    if (subjects.indexOf(subject) === -1) return subject;
    else return 0;
  })
  .filter((subject) => subject !== 0);
// 두 배열을 λΉ„κ΅ν•˜μ—¬ λ‘˜ λ‹€ 있으면 0, μ—†μœΌλ©΄ κ·ΈλŒ€λ‘œ λ°˜ν™˜
// 0을 μ œμ™Έν•œ λ‚˜λ¨Έμ§€ μš”μ†Œλ“€λ§Œ 필터링

filterClass.forEach((subject) => (scores[subject] = 0));
// λ‚˜λ¨Έμ§€ κ³Όλͺ©λ“€μ„ λͺ¨λ‘ valueκ°€ 0으둜 μΆ”κ°€
  • λ¬Έμžν˜• 성적을 μˆ«μžν˜• 으둜 λ³€ν™˜ν•˜λŠ” 문제
  • scores κ°μ²΄μ—μ„œ λ¬Έμžν˜• 점수만 μΆ”μΆœν•΄ μˆ«μžν˜• 으둜 λ³€κ²½
  • scores 객체λ₯Ό μˆœνšŒν•˜λ©° μˆ«μžν˜•μœΌλ‘œ 값을 λ³€κ²½
  • scores κ°μ²΄μ—μ„œ key 만 λ°°μ—΄λ‘œ μΆ”μΆœν•΄ requireClass λ°°μ—΄κ³Ό 비ꡐ ν›„ μ—†λŠ” κ³Όλͺ©λ§Œ 필터링
  • ν•„ν„°λœ λ‚˜λ¨Έμ§€ κ³Όλͺ©λ“€μ„ scores 객체에 value λŠ” 0으둜 μΆ”κ°€
profile
Front-End Developer 😁

0개의 λŒ“κΈ€