나 개발자 할래요
2024.09.09 본문
내 테스트 결과는 visibility와 상관없이 항상 보이게 하고, 비공개로 했을 때 다른 사용자들에게만 안 보이도록 한다.
하지만, 작성된 코드는 visibility가 true일 때만 결과를 보여주고 있다.
내 테스트 결과를 visibility 필터에서 제외하고 항상 보이도록 하려면,
const filteredData = data.filter((d) => d.visibility === true || d.userId === user.userId);
1. d.visibility === true : 테스트 결과가 공개 상태인 경우 (다른 사람이 작성한 공개 결과도 포함됨)
2. d.userId === user.userId : 현재 로그인한 유저 테스트 결과 (비공개 상태라도 포함됨)
|| 논리연산자를 사용함으로써!
내 테스트 결과는 비공개일지라도(로그인 유저의 결과는 항상 보이게 되며),
다른 사람의 결과는 공개 상태일 때만 보이도록 할 수 있다.
코드 작동 방식
|| 논리연산자는 두 조건 중 하나로 참이면 전체 조건이 참이 되게 한다.
첫 번째 조건 (d.visibility === true) : 테스트 결과가 공개 상태이면 참.
두 번째 조건 (d.userId === user.userId) :로그인한 유저가 작성한 테스트 결과이면 참
따라서, 데이터가 visibility가 true이거나, userId가 현재 로그인한 유저의 userId일 때, 해당 데이터가 결과에 포함된다.
'개발자 되는 법... > TIL...' 카테고리의 다른 글
2024.09.11 (1) | 2024.09.11 |
---|---|
2024.09.10 (0) | 2024.09.10 |
2024.09.09 (0) | 2024.09.09 |
2024.09.06 (0) | 2024.09.06 |
2024.09.04 (1) | 2024.09.04 |