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

[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() 함수 이용


분류 제목
Effect JQ - slideDown() 메서드 - 선택요소를 밑으로 슬라이드해 보여주기 (= slideDown메서드 …
Effect JQ - slideToggle() 메서드 ★★★ - slideUp() 메서드와 slideDown() 메서드를…
Effect JQ - slideUp() 메서드 - 선택요소를 위로 슬라이드해 숨기기. (= slideUp메서드 = 슬라이…
Effect JQ - stop() 메서드 - 선택요소에 대해 현재 실행중인 애니메이션 중지 (= stop메서드 = 스톱메…
Effect JQ - toggle() 메서드(effect경우) ★★★★★ - 보이기/숨기기 상호전환. (= toggle메…
HTML_CSS JQ - addClass() 메서드 ★ - 선택요소에 하나 또는 그 이상의 class 명을 추가
HTML_CSS JQ - after() 메서드 - 선택요소 뒤에 내용 추가. (= after메서드 = 애프터메서드)
HTML_CSS JQ - append() 메소드 ★★★ - 선택요소 안 끝부분에 내용 삽입 (= append메서드 = 어펜드…
HTML_CSS JQ - appendTo() 메소드 - 선택요소 안 끝에 HTML 요소삽입 (= appendTo메서드 = 어…
HTML_CSS JQ - attr() 메서드 ★★★ - 속성값 설정/반환 (= attr메서드 = 어트르 메서드 = 어트리…
HTML_CSS JQ - before() 메서드 - 선택요소 앞에 내용 삽입
HTML_CSS JQ - clone() 메서드 - 선택요소 복사본 만들기 (= 선택요소복사 = clone메서드 = 클론메서드…
HTML_CSS JQ - detach() 메서드 - 선택요소제거. (※ 데이터 및 이벤트는 유지됨).
HTML_CSS JQ - empty() 메서드 - 선택요소의 모든 자식노드와 내용 제거. (= 비우기 = empty메서드 =…
HTML_CSS JQ - hasClass() 메서드 ★★★ - 선택요소가 지정 클래스명 가지고 있는지 검사. (= 지정 클래…
HTML_CSS JQ - height() 메서드 - 높이 설정/반환. (= height메서드 = 하이트메서드)
HTML_CSS JQ - html() 메서드 ★ - 선택요소의 내용설정/내용변경/내용반환 (= html메서드 = 에이치티엠엘…
HTML_CSS JQ - innerHeight() 메서드 - 높이 반환 (height + padding) (= innerHe…
HTML_CSS JQ - innerWidth() 메서드 - 선택요소 너비 반환 (※ padding 포함 O , border …
HTML_CSS JQ - insertAfter() 메서드 ★ - 선택요소 뒤에 요소삽입/요소추가. (= insertAfter…
9/15
목록
찾아주셔서 감사합니다. Since 2012