Contents
see List작성일 2015. 04. 08.
JavaScript jQuery map() 배열 변환 가이드
jQuery map() 메서드로 폼 요소 값을 배열로 변환하는 방법입니다. 체크박스, 입력 필드 등 여러 값을 효율적으로 수집합니다.
1. 기본 사용법
// 기본 문법
var result = $(selector).map(function(index, element) {
return 값;
}).get(); // .get()으로 순수 배열 변환2. 체크된 체크박스 값 수집
<input type="checkbox" name="items" value="1" checked>
<input type="checkbox" name="items" value="2">
<input type="checkbox" name="items" value="3" checked>
// 체크된 값만 배열로
var checkedValues = $("input[name=items]:checked").map(function() {
return $(this).val();
}).get();
// 결과: ["1", "3"]
// 숫자로 변환
var checkedIds = $("input[name=items]:checked").map(function() {
return parseInt($(this).val(), 10);
}).get();
// 결과: [1, 3]3. 텍스트 입력값 수집
<input type="text" class="item-qty" value="10">
<input type="text" class="item-qty" value="20">
<input type="text" class="item-qty" value="30">
var quantities = $(".item-qty").map(function() {
return $(this).val();
}).get();
// 결과: ["10", "20", "30"]4. 객체 배열 생성
<tr class="product-row" data-id="101">
<td class="name">상품A</td>
<td class="price">1000</td>
<td><input class="qty" value="2"></td>
</tr>
var products = $(".product-row").map(function() {
return {
id: $(this).data("id"),
name: $(this).find(".name").text(),
price: parseInt($(this).find(".price").text()),
qty: parseInt($(this).find(".qty").val())
};
}).get();
// 결과: [{id: 101, name: "상품A", price: 1000, qty: 2}, ...]5. 선택 옵션 값
<select id="categories" multiple>
<option value="1" selected>전자</option>
<option value="2">의류</option>
<option value="3" selected>식품</option>
</select>
var selected = $("#categories option:selected").map(function() {
return $(this).val();
}).get();
// 결과: ["1", "3"]6. 테이블 데이터 추출
// 특정 열의 모든 값
var names = $("table tbody tr td:nth-child(2)").map(function() {
return $(this).text().trim();
}).get();
// 전체 테이블 데이터
var tableData = $("table tbody tr").map(function() {
var row = $(this).find("td").map(function() {
return $(this).text().trim();
}).get();
return [row];
}).get();7. 조건부 필터링
// 빈 값 제외
var values = $(".input-field").map(function() {
var val = $(this).val().trim();
return val.length > 0 ? val : null;
}).get();
// 특정 조건만
var validPrices = $(".price").map(function() {
var price = parseInt($(this).text());
return price > 0 ? price : null;
}).get();8. 서버 전송용 데이터
// JSON으로 전송
var items = $(".cart-item").map(function() {
return {
productId: $(this).data("product-id"),
quantity: $(this).find(".qty").val()
};
}).get();
$.ajax({
url: "/api/cart",
type: "POST",
contentType: "application/json",
data: JSON.stringify({ items: items })
});map() vs each() 비교
| 메서드 | 용도 | 반환값 |
|---|---|---|
| map() | 값 변환/수집 | 새 배열 |
| each() | 순회/처리 | 없음 |
주의사항
- .get() 호출해야 순수 JavaScript 배열
- null/undefined 반환 시 결과에서 제외
- this는 DOM 요소, $(this)로 jQuery 객체 변환
javascript
| No | 작성일 | Title |
|---|---|---|
| 3384 | 2026. 08. 21. | Node.js API에서 요청 취소를 제대로 처리하는 방법: AbortSignal로 외부 작업 정리하기 |
| 3352 | 2026. 08. 13. | Node.js 응답이 간헐적으로 느릴 때: 이벤트 루프 지연 측정과 CPU 작업 분리 방법 |
| 3320 | 2026. 08. 04. | JavaScript fetch 요청을 안전하게 만드는 방법: timeout·재시도·오류 처리 실전 패턴 |
| 3288 | 2026. 07. 27. | Node.js 서버 무중단 배포를 위한 Graceful Shutdown 구현 가이드 |
| 3257 | 2026. 07. 19. | Node.js 대용량 파일 처리 가이드: 스트림과 backpressure로 메모리 사용량 제어하기 |
| 3232 | 2026. 07. 11. | Node.js 실무형 에러 처리: async/await에서 실패를 일관되게 분류하고 복구 속도 높이기 |
| 3174 | 2026. 07. 02. | Node.js 환경 변수 검증 가이드: process.env를 안전한 설정 객체로 바꾸기 |
| 3123 | 2026. 06. 24. | TypeScript 타입 좁히기 운영 가이드: unknown 입력을 안전한 도메인 객체로 바꾸기 |
| 3065 | 2026. 06. 16. | 브라우저 성능 병목 찾기: PerformanceObserver로 LCP·INP·긴 작업 로그 수집하기 |
| 2978 | 2026. 06. 08. | Node.js fetch 타임아웃과 재시도 설계: 외부 API 장애 전파 줄이기 |