πŸ“… TIL #26

twittler κ΅¬ν˜„4 - 마무리

πŸ‘‰ νŠΈμœ„ν‹€λŸ¬ νŠΈμœ— μΆ”κ°€ν•˜κΈ°!




μ˜€λŠ˜μ€ νŠΈμœ„ν‹€λŸ¬λ₯Ό μ–΄λ–»κ²Œ κ΅¬ν˜„ν–ˆλŠ”μ§€ κ°„λ‹¨ν•˜κ²Œ λΈ”λ‘œκΉ…ν•  μ˜ˆμ •μ΄λ‹€.

λ¨Όμ € νŠΈμœ—μ„ μΆ”κ°€ν•˜λŠ” κΈ°λŠ₯을 κ΅¬ν˜„ν–ˆλ‹€.

πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡

νŠΈμœ— μΆ”κ°€ κΈ°λŠ₯


νŠΈμœ—μΆ”κ°€λŠ” νŠΈμœ—λ²„νŠΌμ— onclick ν•¨μˆ˜λ₯Ό λ§Œλ“€μ–΄μ„œ 객체λ₯Ό λ§Œλ“€κ³  κ·Έ 객체λ₯Ό 데이터 배열에 λ„£μ–΄μ£ΌλŠ” μ‹μœΌλ‘œ κ΅¬ν˜„μ„ ν–ˆλ‹€.

배열에 unshiftλ₯Ό ν•΄μ„œ 맨 μœ„μ—μ„œ 보여쀄 수 μžˆμ—ˆλ‹€.

κ·Έ ν›„, remove()λ₯Ό ν™œμš©ν•΄ 배열을 μ „λΆ€ 지웠닀가 λ‹€μ‹œ λͺ©λ‘μ„ λ³΄μ—¬μ£ΌλŠ” ν•¨μˆ˜λ₯Ό μ‹€ν–‰μ‹œμΌ°λ‹€.
(forEach()λ₯Ό ν™œμš©ν•΄ μš”μ†Œλ“€μ„ μžλ™μœΌλ‘œ λ§Œλ“€μ–΄μ£ΌλŠ” ν•¨μˆ˜λ₯Ό 이미 κ΅¬ν˜„ν•΄λ†¨μŒ)

tweetBtn.onclick = function () {
  alert("νŠΈμœ—μ„ μΆ”κ°€ν•©λ‹ˆλ‹€!");

  const tweetObj = {}; // νŠΈμœ—μ„ μ €μž₯ν•  곡간을 λ§Œλ“ λ‹€.
  tweetObj.user = "λ‚˜λŠ” μš°μ„±";
  tweetObj.message = userInputText.value;
  tweetObj.create_at = new Date().format(); // μ‹œκ°„ ν•¨μˆ˜ 미리 λ§Œλ“€μ–΄ λ†“μŒ

  DATA.unshift(tweetObj); // 맨 첫번째 νŠΈμœ—μœΌλ‘œ 보여주기 μœ„ν•΄ unshift μ‚¬μš©

  if (DATA.length > 7) {
    // 지ꡬ λκΉŒμ§€ λŠ˜μ–΄λ‚˜λŠ”κ²Œ μ‹«μ—ˆμŒ
    DATA.pop();
  }

  removeTweet(); // 미리 λ§Œλ“€μ–΄ 놓은, λͺ¨λ“  μš”μ†Œλ₯Ό μ§€μš°λŠ” ν•¨μˆ˜
  printComments(); // 미리 λ§Œλ“€μ–΄ 놓은, forEachλ₯Ό ν™œμš©ν•΄ λͺ¨λ“  μš”μ†Œλ₯Ό λ‹€μ‹œ 뢈러옴

  userInputText.value = ""; // νŠΈμœ—μ„ 보내고 μž…λ ₯칸은 λ‹€μ‹œ 곡백으둜 λ§Œλ“¬
};

μ΄λŸ°μ‹μœΌλ‘œ νŠΈμœ—λ²„νŠΌμ„ ν΄λ¦­ν–ˆμ„ λ•Œ νŠΈμœ—μ΄ μΆ”κ°€λ˜λ„λ‘ κ΅¬ν˜„μ„ ν–ˆλ‹€!



필터링 κΈ°λŠ₯


νŠΈμœ„ν„°λ₯Ό ν΄λ¦­ν•˜λ©΄ ν•΄λ‹Ή νŠΈμœ„ν„°μ˜ νŠΈμœ—λ§Œ 보여쀀닀!

πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡πŸ‘‡



필터링을 κ΅¬ν˜„ν• λ•Œκ°€ 사싀 κ°€μž₯ μ• λ¨Ήμ—ˆμ—ˆλŠ”λ°β€¦γ…‹γ…‹γ…‹γ…‹γ…‹

ν•„ν„°ν•¨μˆ˜λ₯Ό λ”°λ‘œ λ§Œλ“€μ–΄μ£Όκ³  μ΄λ²€νŠΈν•¨μˆ˜μ— ν•„ν„°ν•¨μˆ˜λ₯Ό λ„£μ–΄μ£ΌλŠ” μ‹μœΌλ‘œ κ΅¬ν˜„ν–ˆλ‹€.

let listArr = []; // 필터링을 λ‹΄μ•„μ£ΌκΈ° μœ„ν•΄ λ§Œλ“¬

function filterList(event) {
  // 필터링 ν•¨μˆ˜
  let targetUser = event.target.textContent;
  listArr = DATA.filter(el => el.user === targetUser);

  removeTweet();
  changeList(listArr); // ν•„ν„°λ§λœ μš”μ†Œλ“€μ„ 보여쀀닀.
}

function changeList(list) {
  list.forEach(printComment); // printComment ν•¨μˆ˜μ•ˆμ— addfilterList() λ₯Ό μ‹€ν–‰μ‹œν‚΄
}

function addfilterList() {
  let userList = document.querySelectorAll(".userName");
  //이름을 ν΄λ¦­ν–ˆμ„ λ•Œ μ΄λ²€νŠΈκ°€ λ°œμƒλ˜μ•Ό ν•˜λ―€λ‘œ 이름을 μœ μ‚¬λ°°μ—΄λ‘œ λ§Œλ“€μ–΄μ€€λ‹€.

  for (let i = 0; i < userList.length; i++) {
    //μœ μ‚¬λ°°μ—΄ 반볡문
    userList[i].addEventListener("click", filterList); //λͺ¨λ“ μš”μ†Œμ— 이벀트 ν•¨μˆ˜ λΆ€μ—¬
  }
}

λ‚˜λŠ” μ΄λŸ°μ‹μœΌλ‘œ κ΅¬ν˜„μ„ ν•΄λ΄€λ‹€!! :+1:

이번 νŠΈμœ„ν‹€λŸ¬ κ³Όμ œλ„ μ €λ²ˆ κ³„μ‚°κΈ°λž‘ λ˜‘κ°™μ΄ λ°œν‘œν•˜κ³  싢은 μ‚¬λžŒμ„ 뽑고 λ‹€λ₯Έ μ‚¬λžŒλ“€μ˜ μ½”λ“œ κ³΅μœ κ°€ μžˆμ—ˆλ‹€.

정말 λ‹€ λ‹€λ₯Έ μ½”λ“œλ“€μ΄μ—ˆκ³ , 각자 μžμ‹ λ§Œμ˜ μ½”λ“œμ™€ cssκ°€ λ‹λ³΄μ—¬μ„œ μ’‹μ•˜λ‹€!!

λ‚˜λ„ λ°œν‘œλ₯Ό μ‹ μ²­ν–ˆμ§€λ§Œ μˆ˜μ—… μ •κ·œμ‹œκ°„μ΄ λλ‚œ μƒνƒœμ—μ„œ λ‚΄ μ°¨λ‘€κ°€ μ™€μ„œ 짧게 ν•˜κ³  λλƒˆλ‹€ γ…œγ…œ

짧게 λ°œν‘œν•œ 탓에 많이 아쉬웠닀. μžλž‘ν•˜κ³  μ‹Άμ€κ²Œ λ§Žμ•˜μ§€λ§Œ μ°Έμ•˜λ‹€..


이둜써 νŠΈμœ„ν‹€λŸ¬ μŠ€ν”„λ¦°νŠΈλ„ 끝!!



πŸ‘Š λ‚΄μΌμ˜ TIW(today I Will)

언더바 (λ©”μ†Œλ“œ κ΅¬ν˜„)