or 조건문을 줄이는 방법 채택완료
자바스크립트 조건문에서 or 가 많을 때 이걸 간단하게 줄이는 방법 없을까요?
아래와 조건문이 있는데... 뭔가 있을것 같은데 못찾겠네요...ㅠ
if (menu==10 || menu==23 || menu==21 || menu==33 || menu==31 || menu==51 || menu==28 || menu==29 || menu==25) {
코드들......
}
답변 7개
답변에 대한 댓글 2개
이 함수 정말 있는 건가요??
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
에고
break; 해당코드;
가 아니라 순번이 바뀌었네요.^^ 아래처럼... 덜렁이는 수가 없습니다.ㅜㅠ
해당코드;
break;
</p>
<p><script>
menu = 31;
menus = [10, 23, 21, 33, 31, 51, 28, 29, 25];
for (i of menus) if (menu == i) {
해당코드;
break;
}
</script></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
menu 를 문자형으로 바꾸면 되지 않을까요?
이것도 생각했던 코드 중 하나인데 데이터타입을 바꾸는 게 귀찮아서 처음처럼 짰지요.ㅋ
</p>
<p><script></p>
<p>menu = 51;</p>
<p>if (["10","23","21","33","31","51","28","29","25"].includes(String(menu))){
해당코드;
}</p>
<p></script></p>
<p>
답변에 대한 댓글 1개
메뉴 번호가 모두 2자리 숫자라 별 문제는 없을것 같아요.
감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
뒷북입니다.
세크티님 답변은 자바스크립트가 아니라 php 이고 자바스크립트에서 php 의 in_array 기능을 만들려면 용을 좀 써야 합니다. 여러가지가 생각이 나긴 하지만 가장 첫번째로 떠오른 코드가...
</p>
<p><script></p>
<p>menu = 31;</p>
<p>menus = [10, 23, 21, 33, 31, 51, 28, 29, 25];
for (i of menus) if (menu == i) {
break;
해당코드;
}</p>
<p></script></p>
<p>
쟁반짜장님 코드도 효과적이긴 하지만 menu = 2 일 경우에도 true 를 리턴하기 때문에 좀 불완전하구요.
답변에 대한 댓글 1개
어쩐지 in_array 를 못 알아 듣더라구요...ㅎ
그래도 응용으로 검색해서 아래와 같이 찾았습니다.
if ([10,23,21,33,31,51,28,29,25].includes(menu)){
코드들..
}
그런데 이것도 menu=1 이나 menu=2 도 true 가 될까요? 숫자인데??
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p><script></p>
<p>var menu = 23;</p>
<p>var menus = [10, 23, 21, 33, 31, 51, 28, 29, 25];</p>
<p>if(menus.indexOf(menu) > -1) {</p>
<p> ... code ...</p>
<p>}</p>
<p></script></p>
<p>
답변에 대한 댓글 2개
여기가 오히려 정답이었는데 이미 채택해 버려서...ㅎ
<script>
menu = 21;
menus = [10, 23, 21, 33, 31, 51, 28, 29, 25];
menus.filter((v) => {
if(menu === v) {
... code ...
}
});
[/code]
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
역시나 간단한 방법이 있었군요...ㅎ