Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript _.without() 메서드 완벽 정리: 배열에서 특정 값 손쉽게 제거하는 방법

_.without() 메서드는 자바스크립트의 underscore.js 라이브러리에 포함된 유틸리티 함수입니다. 두 개의 매개변수를 받으며, 첫 번째 배열에서 두 번째 매개변수로 전달된 값들을 제거한 새로운 배열을 반환합니다.

이 메서드는 값이 true인지 false인지 판단하지 않고, 각 값을 하나씩 순서대로 확인하며 작업을 수행합니다. 특히 주의할 점은 대소문자를 구분한다는 것입니다.

_.without() 기본 문법

_.without(array, values);
  • array: 원본 배열
  • values: 제거하고 싶은 값들(여러 개 지정 가능)

예제 1: 숫자 배열에서 값 제거하기

다음 예제에서는 두 번째 매개변수에 포함된 값들이 첫 번째 배열에 존재하는지 확인한 후, 해당 값들을 모두 제거합니다.

<html>
<body>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>
</head>
<body>
<script>
    document.write(_.without([5, 6, 4, 8, 9, 9, 0, 1], 0, 9, 1));
</script>
</body>
</html>

실행 결과

5,6,4,8

배열에서 0, 9, 1이 모두 제거되고 나머지 값만 남은 것을 확인할 수 있습니다. 중복된 값(9)도 함께 제거됩니다.

예제 2: 대소문자 구분 확인하기

다음 예제를 통해 _.without() 메서드가 대소문자를 엄격하게 구분한다는 점을 알 수 있습니다. 첫 번째 배열에는 소문자 "java"가 있고, 두 번째 매개변수에는 대문자 "JAVA"가 전달되었습니다.

<html>
<body>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>
</head>
<body>
<script>
   document.write(_.without([5, 6, "c++", "php", "java", "javascript", 0, 1], 0, "JAVA", 1));
</script>
</body>
</html>

실행 결과

5,6,c++,php,java,javascript

"java"라는 단어가 첫 번째 배열과 두 번째 매개변수 양쪽에 존재하지만, 두 번째 매개변수의 "JAVA"는 대문자이고 첫 번째 배열의 "java"는 소문자이기 때문에 제거되지 않고 그대로 남아 있습니다.

정리

_.without() 메서드는 배열에서 불필요한 값을 간편하게 필터링할 때 유용합니다. 사용 시 다음 사항을 기억하세요.

  • 원본 배열을 변경하지 않고 새로운 배열을 반환합니다.
  • 값 비교 시 대소문자를 구분하므로 문자열을 다룰 때 주의해야 합니다.
  • 제거할 값은 여러 개를 한 번에 전달할 수 있습니다.