$.grep 과 $.map
이번 글에서는 jQuery에서 제공하는 두 개의 배열 유틸리티인 $.grep ()과 $.map () 사이의 차이점에 대해 포스팅 할 것입니다.
사실 $.grep 함수는 배열을 필터링하고 필터링 된 배열을 반환하지만, $.map은 단순히 배열의 각 항목에 함수를 적용하여 수정 된 배열을 반환합니다.
우선,이 기능들은 매우 다릅니다. 주요 차이점은 다음과 같습니다.
$.grep()
1 2 3 4 5 6 | $.grep(array, function(index, value) { //... }); | cs |
첫 번째 매개변수인 array의 경우에는 필터링을 할 배열입니다.
두 번째 매개변수인 index는 각 배열 항목의 숫자 인덱스입니다.
세 번째 매개변수인 value는 배열의 각 항목의 실제 값입니다.
$.map()
1 2 3 4 5 | $.map(array, function(value, index) { //... }); | cs |
첫 번째 매개변수인 array는 항목에 함수를 적용하려는 배열입니다.
두 번째 매개변수인 value는 배열의 각 항목에 대한 실제 값입니다.
세 번째 매개변수인 index는 각 항목의 숫자 색인입니다.
언제 사용하는가?
배열에 필터를 적용하려면 $.grep()을 사용합니다.
대신 우리는 각 배열의 항목에 함수를 적용 할 때 $.map()을 사용합니다.
예를 들어, 순서가 지정되지 않은 목록이있는 경우에는 아래와 같습니다.
1 2 3 4 5 6 7 8 9 10 11 12 | <ul id="test"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> <li>10</li> </ul> | cs |
$.grep()을 사용하여 짝수를 포함하는 목록 항목 만 필터링 할 수 있습니다.
1 2 3 4 5 6 7 8 | var lis = $('#test li').get(); var grep = $.grep(lis, function(index, value) { return (lis[value].firstChild.nodeValue % 2 == 0); }); | cs |
return문은 실제로 대괄호 안에 지정된 필터를 적용합니다.
대신 배열에 변경 사항을 적용하고 수정 된 배열을 반환하려면 아래와 같이 $.map()을 사용할 수 있습니다.
예를 들어 각 항목의 텍스트를 숫자로 변환하고 각 항목의 색인에 해당 값을 합할 수 있습니다.
1 2 3 4 5 | var map = $.map(lis, function(value, index) { return ('<li>' + (new Number(value.firstChild.nodeValue) + index) + '</li>'); }); | cs |
함수 블록 내에서 사용되는 구문은 $.grep()에서 사용되는 구문과 동일합니다.
유일한 차이점은 필터링 된 배열이 아니라 수정 된 배열을 반환한다는 것입니다.
아래에서 예제를 보실 수 있습니다.
출처 : http://onwebdev.blogspot.com/2011/03/jquery-grep-and-map-example-and-syntax.html
'Javascript' 카테고리의 다른 글
[JS] GITHUB이 Jquery를 삭제하다 (0) | 2019.01.26 |
---|---|
[JS] Map vs ForEach (2) | 2018.08.25 |
[JS] 8번째 데이터 타입 BigInt (0) | 2018.06.07 |
함수 선언식 && 표현식 && 호이스팅 (0) | 2018.04.17 |
ES 2017 및 ES 2018에 대한 새로운 기능 (1) (0) | 2018.04.15 |
댓글