조건 분기 헷갈려서요..
본문
권한 (관리자, 유저, 방문자)
1.관리자(admin) : admin
2,아이디(user_id) : 1)로그인 하지 않았을 경우
2)로그인 했을 경우
3. public : boolean (Y || N)
public이 Y인 경우 모든 사람이 볼수 있음.
pubilc이 N인 경우 admin과 작성자만 볼수 있음.
작성자 id : test
if (public === 'N') {
// 방문 자인 경우
if ( user_id !== 'tester' || !admin){
console.log('관리자랑 나만 볼거야')
}
console.log('다 봐라')
} else if (public === 'Y') {
console.log('다 봐라')
}
1, 여기에서 조건 분기가 잘 안되는데
&& 인지 || 인지 헷갈리네요
2. console.log('다봐라')
이것을 한번만 쓰게 바꿀수 있을까요?
부탁드립니다.
!-->
답변 2
1.
2.
!-->!-->
if(user_id === 'tester' || admin || public === 'Y') {
console.log('본다')
} else {
console.log('안본다')
}
2.
if (public === 'N') {
if (user_id !== 'tester' && !admin){
// 작성자도 아니고, 관리자도 아니다.
console.log('관리자랑 나만 볼거야')
} else {
// 테스터 거나 관리자다
console.log('관리자거나 나다')
}
} else if (public === 'Y') {
console.log('다 봐라')
}
!-->!-->
좀 이상한게 있네요
boolean 인데 true / false 가 아니라 .Y/ N 인가요??
Y / N 은 문자(열)로 처리할때 주로 사용합니다.
전제조건이 또하나 이상합니다.
로그인한경우 user_id 가 존재, 로그인안한경우 user_id가 부재(null) 인것을 표기하신거 같은데
글쓴이와 관리자만 본다고 했는데
글쓴이의 정보는어떤걸로 판단하나요?
그래서,
제가 임의적으로 글쓴이는 wr_mb_id 라고 칭하겠습니다.
처리 방식은
[조건]
1.관리자(admin) : admin
2,아이디(user_id) : 1)로그인 하지 않았을 경우
2)로그인 했을 경우
3. public : Y || N
4. 글쓴이id : wr_mb_id의 값
public이 Y인 경우 모든 사람이 볼수 있음.
pubilc이 N인 경우 admin과 작성자만 볼수 있음.
if (public == "Y" && user_id) {
if (user_id == wr_mb_id || admin) {
console.log('관리자랑 나만 볼거야');
}
}
console.log('다 봐라');
와 같이 하면
if 문 밖에
'다 봐라'를 찍고 else문을 제거하면
모두가 다 볼수있는 상황이 됩니다.
and : &&
or : ||
문자열 비교 : ==
형(type)까지 비교 : ===
https://programmers.co.kr/learn/questions/25
!-->!-->
답변을 작성하시기 전에 로그인 해주세요.