본문 바로가기
내마음대로만들어보자/JS

$.map() / $.grep() 메서드

by 소농민! 2021. 8. 18.
728x90

$.map() 는 배열에 저장된 데이터 수만큼 메서드를 반복 실행한다. 그다음 메서드에서 반환된 데이터는 새 배열에 저장되고 그 배열 객체를 반환한다. 

 

$.grep() 메서드는 배열에 저장된 데이터 수만큼 메서드를 반복 실행하며 인덱스 오름차순으로 배열의 데이터를 불러온다. 메서드 반환값이 true면 데이터가 새 배열에 저장되고 배열을 반환한다. 

 

* 기본형

1. $.map() 메서드
   $.map(Array, function(매개변수1, 매개변수2){
        return 데이터;
   });

2. $.grep() 메서드
    $.grep(Array, function(매개변수1, 매개변수2){
         return[true | false];
    });

 

1 배열에 저장된 요소만큼 메서드를 반복하며, 실행될때마다 매개변수1, 매개변수2에는 배열의 데이터와 인덱스값이 오름차순으로 대입된다. 반환된 데이터는 새 배열에 저장되고 새롭게 가공된 배열 객체를 반환한다. 

 

* 예제

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title> 선택자 </title>  
<script src="js/jquery.js"></script>
<script>
$(function(){
var arr1 = [{
"area":"서울", 
"name":"무대리"
},{
"area":"부산", 
"name":"홍과장"
},{
"area":"대전", 
"name":"박사장"
},{
"area":"서울", 
"name":"빅마마"
}];

var arr2 = $.map(arr1, function(a, b){
if(a.area == "서울") {
return a;
}
});
console.log(arr2);
console.log("==== first End ====");

var arr3 = $.grep(arr1, function(a, b){
if(a.area == "서울") {
return true;
} else {
return false;
}
});
console.log(arr3);
console.log("==== Second End ====");    
});
</script>
</head>
<body>
</body>
</html>

배열에 저장된 객체 수만큼 메서드를 반복 실행하면서 실행될때마다 배열에 저장된 객체에 인덱스 오름차순으로 대입된다. 

매개변수 a,b는 배열의 객체와 인덱스값이 대입되며, 객체의 area 값이 서울이면 새 배열 객체에 저장하고 반환한다.