Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript Object.keys().map()과 Array.map() 완벽 비교 및 사용 예제

JavaScript에서 객체(Object)와 배열(Array)을 다룰 때 자주 사용되는 두 가지 메서드 조합, Object.keys().map()Array.map()의 차이를 예제 코드를 통해 살펴보겠습니다.

두 메서드의 기본 개념

Object.keys().map()

객체에는 직접 map() 메서드를 사용할 수 없습니다. 따라서 Object.keys()로 객체의 키(key)들을 배열로 추출한 뒤, 그 배열에 map()을 적용하는 방식으로 활용합니다. 주로 객체의 키를 순회하며 값을 계산하거나 변환할 때 유용합니다.

Array.map()

배열에 직접 적용할 수 있는 메서드로, 각 요소를 콜백 함수로 처리한 결과를 새로운 배열로 반환합니다. 원본 배열은 변경되지 않으며, 데이터 변환 작업에 가장 널리 쓰이는 고차 함수 중 하나입니다.


예제 코드

다음은 Object.keys().map()Array.map()의 동작을 보여주는 JavaScript 예제입니다.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
    body {
        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    }
    .result,.sample {
        font-size: 18px;
        font-weight: 500;
        color: rebeccapurple;
    }
    .result {
        color: red;
    }
</style>
</head>
<body>
<h1>Object.keys().map() VS Array.map()</h1>
<div class="sample">{1:'A',22:'B',55:'C',19:'D'}</div>
<div class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>위 버튼을 클릭하면 객체 키들의 합계가 계산됩니다</h3>
<div class="sample">[22,33,11,44]</div>
<div class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>위 버튼을 클릭하면 배열의 각 요소가 2배로 변환됩니다</h3>
<script>
    let resEle = document.querySelectorAll(".result");
    let BtnEle = document.querySelectorAll(".Btn");
    let obj = { 1: "A", 22: "B", 55: "C", 19: "D" };
    let arr = [22, 33, 11, 44];
    let total = 0;
    BtnEle[0].addEventListener("click", () => {
        Object.keys(obj).map((x) => (total += parseInt(x)));
        resEle[0].innerHTML = "The sum of the object keys = " + total;
    });
    BtnEle[1].addEventListener("click", () => {
        resEle[1].innerHTML = arr.map((x) => x * 2);
    });
</script>
</body>
</html>

실행 결과

위 코드를 실행하면 다음과 같은 화면이 출력됩니다.

JavaScript Object.keys().map()과 Array.map() 완벽 비교 및 사용 예제

첫 번째 'CLICK HERE' 버튼 클릭 시

Object.keys(obj)가 객체 {1:'A', 22:'B', 55:'C', 19:'D'}의 키인 [1, 22, 55, 19]를 배열로 반환하고, map()이 각 키를 정수로 변환해 모두 더한 결과를 화면에 표시합니다.

JavaScript Object.keys().map()과 Array.map() 완벽 비교 및 사용 예제

두 번째 'CLICK HERE' 버튼 클릭 시

Array.map()이 배열 [22, 33, 11, 44]의 각 요소에 2를 곱하여 [44, 66, 22, 88]이라는 새로운 배열을 생성하고 결과로 출력합니다.

JavaScript Object.keys().map()과 Array.map() 완벽 비교 및 사용 예제

정리

Object.keys().map()은 객체의 키를 다루기 위한 우회 방법이고, Array.map()은 배열 전용 메서드라는 점이 핵심 차이입니다. 객체를 순회해야 한다면 Object.keys(), Object.values(), 또는 Object.entries()와 함께 map()을 조합해 사용하는 것이 일반적인 패턴입니다.