개발_자 2024. 9. 9. 18:27

내 테스트 결과는 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일 때, 해당 데이터가 결과에 포함된다.