TIL. filter()를 사용해 댓글을 지워보자 - 8/10

예흠·2020년 8월 10일
0

wecode

목록 보기
29/43

- .filter()

.filter()는 map이나 foreach처럼 요소들을 반복해주는건 동일 하지만
조건을 걸어서 조건에 맞는 것들만 리턴시키는 method입니다.

let abc = [1,2,3,4,5,6]

const newAbc = abc.filter((el) => {
  return el%2 === 1
})

이러면 newAbc에는 [1,3,5] 가 들어갑니다!
이런식으로 활용할 수가 있습니다.

자 그럼 댓글을 어떻게 지웠냐 봅시다

handleRemoveClick = (commentId) => {
    this.setState({
      data: {
        ...this.state.data,
        feedComment: this.state.data.feedComment.filter((comment) => {
          return comment.id !== commentId;
        }),
      },
    });
  };

이런식으로 handleRemoveClick 함수가 실행 되면
각 버튼마다 자신의 id(key값)을 파라미터에 넣고
자기를 제외한 나머지로 배열을 재구성 합니다.

이렇게 댓글을 각각 지울수 있습니다!

- [...arr]

이것은 한마디로 복사를 해주는 것입니다.

let abc = [1,2,3,4,5,6]
s
let eee = [...abc]
const newAbc = abc.filter((el) => {
  return el%2 === 1
})

이렇게 복사를 할수 있습니다.

- distructuring

distructuring 은 비구조화 할당이라고 합니다.
어떠한 object를 특정 변수에 넣고 싶을때 일일이 다 주려면 굉장히 비효율적이고
코드가 길어져서 가독성이 떨어질수도 있습니다.

let abc = {
  a: 1,
  b: 2,
  c: 3,
}

const a = abc.a;
const b = abc.b;
const c = abc.c;

console.log(a,b,c)

이런 코드를

let abc = {
  a: 1,
  b: 2,
  c: 3,
}

const { a, b, c } = abc

console.log(a,b,c) // 1, 2, 3 나옴

이렇게 간단하게 쓸 수 있습니다!

profile
노래하는 개발자입니다.

0개의 댓글