개발 중에는 문자열을 여러 문자열 값과 비교해야 하는 경우가 많습니다. 직관적인 반응은 || 기호를 사용하여 다음과 같이 여러 === 완성을 연결하는 것입니다.
if (string === 'banana' || string === 'pineapple') {
fruitColor = 'yellow';
}
이것은 매우 쉬울 수 있습니다. 욕구를 충족시키기에는 좋지만, 과일 종류가 늘어나면 항상 조금 서툴고 친숙하지 않은 느낌이 듭니다.
if (string === 'banana' || string === 'pineapple' || string === 'mongo' || string === 'lemon') {
fruitColor = 'yellow';
}
위 코드는 그다지 좋아 보이지 않습니다. 이 요구 사항을 처리하는 다른 방법은 없습니다.
스위치
switch( string) {
case 'banana':
case 'pineapple':
case 'mongo':
case 'lemon':
fruitColor = 'yellow'
}
보기엔 좋아 보이지만 항상 더 많은 타이핑이 필요하고 많이 타이핑하는 것을 좋아하지 않는 사람들에게는 좋은 방법이 아닙니다.
배열
if ( ['바나나', '파인애플', '몽고', '레몬'].indexOf(string) >= 0) {
fruitColor = 'yellow'
}
이것이 훨씬 낫지만 IE9 이하의 IE 브라우저는 IE
jQuery jQuery는 inArray 메서드를 제공합니다.
if ($.inArray(['banana', 'pineapple', 'mongo', 'lemon'], string) >= 0) {
fruitColor = 'yellow';
}
Underscore Underscore는 포함 메소드를 제공합니다.
if (_.contains(['banana', 'pineapple', 'mongo', 'lemon'], string)) {
FruitColor = 'yellow';
}
정규 표현식 물론 최종 무기인 정규 표현식
if (/^(banana|pineapple|mongo|lemon)$/.test (문자열)) {
fruitColor = '노란색'
}