본문 바로가기
IT/jQuery

[jquery] jquery 배열 관련 메서드

by on sunday 2020. 2. 4.
728x90
반응형

제이쿼리 배열 관련 매서드 종류

종류 사용법 설명
each() / $.each()

$("요소 선택").each(function)

#.each($("요소 선택").function)

배열에 저장된 문서 객체만큼 메서드가 반복 실행됩니다. 배열에 저장된 객체의 순서대로 하나씩 접근하여 객체를 선택하고 인덱스를 구합니다.
$.map() $.map(Aarry.function) 배열에 저장된 데이터 수만큼 메서드가 반복 실행됩니다. 함수에서 반환된 데이터는 새 배열에 순서대로 저장됩니다. 새로 저장된 배열 객체를 반환합니다.
$.grep() $grep(Aarry.function) 배열에 저장된 데이터 수만큼 메서드가 반복 실행됩니다. 반환값이 true인 경우에만 배열의 데이터가 인덱스 오름차순으로 새 배열에 저장되며 그 배열을 반환합니다.
$.inArray() $.inArray(data, Array, start index) 배열 안에서 데이터를 찾습니다. 데이터를 찾으면 가장 맨 앞 데이터의 인덱스를 반환하고, 찾지 못하면 -1을 반환합니다. start index의 값을 지정하면 해당 위치부터 데이터를 찾습니다.
$.isArray() $.isArray(object) 입력한 객체가 배열 객체라면 true를, 아니면 false를 반환합니다.
$.merhe() $.merge(Array1, Array2) 인자값으로 입력한 2개의 배열 객체를 하나로 그룹화합니다.
index() $("요소 선택").index("지정 요소 선택") 선택자로 요소를 먼저 선택합니다. 그런 다음 지정한 요소의 인덱스 정보를 가져옵니다.

each() / $.each() 메서드

1. $("요소 선택").each(function(매개변수1, 매개변수2) {})

2. $.each($("요소 선택"), function(매개변수1, 매개변수2) {})

3. $("요소 선택").each(function() {$(this)})

4. $.each($("요소선택"), function() {$(this)})

 

1,2 - 배열에 저장된 요소의 개수만큼 메서드를 반복 실행합니다.

메서드를 실행할 때마다 매개변수1, 매개변수2 에는 배열에 저장된 요소와 인덱스의 값이 배열에 오름차순으로 대입됩니다.

 

3,4 - 배열에 저장된 요소의 개수만큼 메서드를 반복 실행합니다. 메서드를 실행할 때마다 $(this)에는 배열에 저장된 요소가 오름차순으로 대입됩니다.

<script>
$(function(){
  var obj = [{
  	"area":"서울"
  },{
  	"area":"부산"
  },{
  	"area":"전주"
  }]

  $(obj).each(function(i,o){
 	 console.log(i + ":",o);
  });
  console.log("====The End1====");

  $.each($("#menu2 li"),function(i,o){
  	console.log(i + ":",o);
  });
  console.log("====The End2====");

  $.each($("#menu2 li"), function(i){
  	console.log(i+":",$(this));
  });

});
</script>
</head>
<body>
  <div id="wrap">
    <h1 class="title">탐색 선택자</h1>
    <ul id="menu1">
      <li>메뉴1-1</li>
      <li>메뉴1-2</li>
      <li>메뉴1-3</li>
    </ul>
    <ul id="menu2">
      <li>메뉴2-1</li>
      <li>메뉴2-2</li>
      <li>메뉴2-3</li>
    </ul>
  </div>
</body>

인덱스 정보는 콘솔 패널에 출력됩니다.

 

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

$.map() 메서드는 배열에 저장된 데이터 수만큼 메서드를 반복 실행합니다.

그리고 메서드에서 반환된 데이터는 새 배열에 저장되고 그 배열 객체를 반환합니다.

 

$.grep() 메서드는 배열에 저장된 데이터 수만큼 메서드를 반복 실행하며

인덱스 오름차순으로 배열의 데이터를 불러옵니다.

메서드의 반환값이 true면 데이터가 새 배열에 저장되고 배열을 반환합니다.

 

1. $.map() 메서드

$.map(Array,function(매개변수1, 매개변수2){

 return 데이터;

});

배열에 저장된 요소만큼 메서드를 반복 실행합니다.

메서드가 실행될 때마다 매개변수1, 매개변수2에는 배열의 데이터와 인덱스값이 인덱스 오름차순으로 대입됩니다.

반환된 데이터는 새 배열에 저장되고 새로운 배열 객체를 반환합니다.

 

2. $.grep() 메서드

$.grep(Array, function(매개변수1, 매개변수2){

 return [true | false];

});

배열에 저장된 요소만큼 메서드를 반복실행 합니다.

반환된 데이터가 true면 인덱스 오름차순으로 데이터를 새 배열에 저장하고 새로운 배열 객체를 반환합니다.

 

$(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====");
});

매개변수 a,b에 배열의 객체와 인덱스값이 대입됩니다.

객체의 "area" 속성이 "서울" 이면 새 배열에 객체(매개변수 a)를 저장하고 새로운 객체를 반환합니다.

 

결과는 콘솔패널에 출력되는 것을 확인할 수 있습니다.

 

 

$.inArray() / $.isArray() / $.merhe() 메서드

$.inArray(data, Array. start index)

-> 배열에 저장된 데이터 중 지정한 데이터를 찾아 인덱스 값을 반환합니다.

 

$.isArray(object)

-> 지정한 데이터가 배열 객체면 ture를, 아니면 false를 반환합니다.

 

$.merhe(Araay1, Array2)

-> 두 배열 객체를 하나의 객체로 묶습니다.

$(function(){
  var arr1 = ["빨강", "주황", "노랑", "초록"];
  var arr2 = ["파랑", "보라", "검정", "하얀"];
  var obj = {
    "name" : "장미",
    "color" : "빨강"
  }

  var idxNum = $.inArray("노랑",arr1);
  console.log(idxNum);

  var okArray1 = $.isArray(arr1);
  var okArray2 = $.isArray(obj);
  console.log(okArray1); //배열 객체면 ture
  console.log(okArray2); //아니면 false

  $.merge(arr2,arr1);
  console.log(arr2);
});

index(0)부터 시작하기 떄문에 노랑은 2가 반환되는것이 맞음.

 

index() 메서드

$("요소 선택").index("지정 요소 선택")

<script>
$(function(){
  var idxNum = $("li").index($("#list3"));
  console.log(idxNum); //2
});
</script>
</head>
<body>
  <h1>배열 함수</h1>
  <ul>
    <li>배열1</li>
    <li>배열2</li>
    <li id="list3">배열3</li>
    <li>배열4</li>
  </ul>
</body>

ul의 자식 요소 중 li#list3 인 요소의 index번호가 콘솔 패널에 출력됩니다.

 

 

 

728x90
반응형

댓글