• 회원가입
  • 로그인
  • 구글아이디로 로그인

[Traversing] JQ - map() 메서드 - 일치하는 요소집합의 각 요소를 함수를 통해 전달하여 반환값 포함하는 새 jQuery 객체 생성 (= map메서드 = 맵메서드) ※ 배열 매핑

목차
  1. map() 예제 - 각 요소의 함수 반환값 이용해 새 jQuery 객체 생성
  2. map() 정의
  3. map() 구문
  4. map() 예제 - 각 배열값에 4를 더해 새 배열 생성
  5. map() 예제 - 배열값이 양수면 1 더하고, 그렇지 않으면 null 반환해 새 배열 생성
  6. map() 예제 - 원래 값과 그 값에 1을 더한 값을 반환해 새 배열 생성
  7. map() 예제 - 객체 값을 2배로 늘려 새 배열 생성
  8. map() 예제 - 객체 이름만으로 새 배열 생성
  9. map() 예제 - 각 배열값의 제곱값으로 새 배열 생성
  10. map() 예제 - 50보다 크면 45빼고, 그렇지 않으면 null 반환해 새 배열 생성
  11. map() 예제 - 각 배열값에서 45를 뺀 값과 색인번호로 구성된 새 배열 생성
  12. map() 예제 - 2차원 배열의 일부 요소를 1차원 배열로 가져오기

 

map() 예제 - 각 요소의 함수 반환값 이용해 새 jQuery 객체 생성 

 

<style>

.hz1 {color: blue;}

.hz2 {color: green;}

.hz3 {color: red;}

</style>

<script src="https://code.jquery.com/jquery-3.5.0.js"></script>

 

<div class='hz1'></div>

<div class='hz2'></div>

<div class='hz3'></div>

 

<script>

var arr = [ "a", "b", "c", "d", "e" ];

  

// .hz1
console.log(arr); // ["a", "b", "c", "d", "e"]

$( ".hz1" ).text( arr.join( ", " ) ); // a, b, c, d, e

  

// .hz2

arr = jQuery.map( arr, function( n, i ) {

  return ( n.toUpperCase() + i );

}); 

console.log(arr); // ["A0", "B1", "C2", "D3", "E4"]

$( ".hz2" ).text( arr.join( ", " ) ); // A0, B1, C2, D3, E4

  

// .hz3

arr = jQuery.map( arr, function( a ) {

  return a + a;

}); 

console.log(arr); // ["A0A0", "B1B1", "C2C2", "D3D3", "E4E4"]

$( ".hz3" ).text( arr.join( ", " ) ); // A0A0, B1B1, C2C2, D3D3, E4E4

</script>

 

결과보기

 

map() 정의

 

객체의 각 요소를 콜백함수로 가공해 새 객체 반환.

 


 

  • JQ 1.0에서는 배열만 가능.
  • JQ 1.6부터는 객체도 가능. 

 

 

map() 구문

 

jQuery.map(array, callback)

또는,
$.map(array, callback)


[매개변수]

 

array

필수. 기존 객체. 

  • JQ ver 1.0 +: 배열
  • JQ ver 1.6 +: 객체

 

callback

필수. 기존 객체를 가공할 콜백함수

  • JQ 1.0 : Function( Object elementOfArray, Integer indexInArray ) => Object
  • JQ 1.6 : Function( Object propertyOfObject, String key ) => Object

 


[반환값]

 

콜백함수가 적용된 배열 반환.  

 

 

map() 예제 - 각 배열값에 4를 더해 새 배열 생성

 

$.map( [ 0, 1, 2 ], function( n ) {

  return n + 4;

});

 

반환값: [4, 5, 6]

 

map() 예제 - 배열값이 양수면 1 더하고, 그렇지 않으면 null 반환해 새 배열 생성

 

$.map( [ 0, 1, 2 ], function( n ) {

  return n > 0 ? n + 1 : null;

});

 

반환값: [ 2, 3 ]

 

map() 예제 - 원래 값과 그 값에 1을 더한 값을 반환해 새 배열 생성

 

$.map( [ 0, 1, 2 ], function( n ) {

    return [ n, n + 1 ];

});

 

반환값: [ 0, 1, 1, 2, 2, 3 ]

 

map() 예제 - 객체 값을 2배로 늘려 새 배열 생성

 

var dimensions = { width: 10, height: 15, length: 20 };

dimensions = $.map( dimensions, function( value, index ) {

  return value * 2;

});

 

반환값: [ 20, 30, 40 ]

 

map() 예제 - 객체 이름만으로 새 배열 생성

 

var dimensions = { width: 10, height: 15, length: 20 };

var keys = $.map( dimensions, function( value, key ) {

  return key;

});

 

반환값: [ "width", "height", "length" ]

 

map() 예제 - 각 배열값의 제곱값으로 새 배열 생성

 

$.map( [ 0, 1, 2, 3 ], function( a ) {

  return a * a;

});

 

반환값: [ 0, 1, 4, 9 ]

 

map() 예제 - 50보다 크면 45빼고, 그렇지 않으면 null 반환해 새 배열 생성

 

$.map( [ 0, 1, 52, 97 ], function( a ) {

  return (a > 50 ? a - 45 : null);

});

 

반환값: [ 7, 52 ]

 

map() 예제 - 각 배열값에서 45를 뺀 값과 색인번호로 구성된 새 배열 생성

 

var array = [ 0, 1, 52, 97 ];

array = $.map( array, function( a, index ) {

  return [ a - 45, index ];

});

 

반화값: [ -45, 0, -44, 1, 7, 2, 52, 3]

 

map() 예제 - 2차원 배열의 일부 요소를 1차원 배열로 가져오기

 

var arr = [

    ['HTML','뼈대','https://homzzang.com/b/html'],

    ['CSS','디자인','https://homzzang.com/b/css'],

    ['JS','기능','https://homzzang.com/b/js']

]

var arrName = [];

arr.map(val => arrName.push(val[0]));

console.log(arrName);

 

반환값: ["HTML","CSS","JS"] 

Phillips 님 (220209) https://sir.kr/qa/448771

PS. PHP 경우, array_column() 함수 이용


분류 제목
Event JQ - select() 메서드 - 입력창의 문자열 드래그 선택. (= select이벤트 = 실렉트/셀렉트 …
Event JQ - submit() 메서드 ★ - 폼 입력값 전송 이벤트 촉발/실행함수 지정. (= submit메서드 …
Event JQ - toggle() 메서드 - JQ 1.9 폐기완료. / 여러 클릭 이벤트간 상호전환. (= togg…
Event JQ - trigger() 메서드 ★ - 지정 이벤트 수동 촉발과 이벤트 기본동작 수행. (= trigger…
Event JQ - triggerHandler() 메서드 - 지정 이벤트 수동 촉발만 함. (= 트리거핸들러 메서드)
Event JQ - unbind() 메서드 - JQ 3.0 폐기예고, off() 메서드로 대체. 추가된 이벤트핸들러 제…
Event JQ - undelegate() 메서드 - JQ 3.0 폐기예고. off() 메서드로 대체. / 이벤트핸들러…
Event JQ - unload() 메서드 - JQ 3.0 폐기완료. / 페이지 떠날 때 실행. (= 언로드 메서드)
Effect JQ - clearQueue() 메서드 - 선택요소에서 실행 대기 함수 모두 제거/삭제. (= clearQu…
Effect JQ - delay() 메서드 - 실행 대기 함수의 실행을 지연. (= delay메서드 = 딜레이메서드)
Effect JQ - dequeue() 메서드 - 실행 대기 함수를 계속 실행. (= dequeue메서드 = 디큐메서드)
Effect JQ - fadeIn() 메서드 - 선택요소를 천천히 나타나게 하기. (= fadeIn메서드 = 페이드인메서…
Effect JQ - fadeOut() 메서드 - 선택요소를 천천히 사라지게 하기. (= fadeOut메서드 = 페이드아…
Effect JQ - fadeTo() 메서드 - 지정 불투명도로 서서히 변경 (= fadeTo메서드 = 페이드투메서드)
Effect JQ - fadeToggle() 메서드 ★ - fadeIn(), fadeOut() 메서드 상호 전환. (= …
Effect JQ - finish() 메서드 - 모든 실행 함수 중지/제거/완성. (= finish메서드 = 피니시메서드…
Effect JQ - hide() 메서드 - 선택요소 감추기/숨기기/비노출. (= hide메서드 = 하이드메서드)
Effect JQ - queue() 메서드 -실행 대기 함수 개수 표시. (= queue메서드 = 큐메서드)
Effect JQ - show() 메서드 - 선택요소 보이기/보이게하기/노출/나타내기/ = show메서드 = 쇼우메서드)
Effect JQ - slideDown() 메서드 - 선택요소를 밑으로 슬라이드해 보여주기 (= slideDown메서드 …
8/15
목록
찾아주셔서 감사합니다. Since 2012