본문 바로가기
프로그래밍/Front-end

JavaScript로 Map과 List 클래스 구현하기

by @GodWin 2024. 10. 30.

-

 

 

안녕하세요! 오늘은 JavaScript를 사용하여 Map과 List 클래스를 직접 구현하고, 이를 활용한 간단한 웹 애플리케이션을 만들어보겠습니다. 함께 살펴보시죠!

 

1. Map 클래스 구현

먼저 Map 클래스를 만들어 보겠습니다. 
이 클래스는 키-값 쌍을 저장하는 기능을 제공합니다.

function Map() {
    this.elements = {};
    this.length = 0;
}

Map.prototype.put = function(key, value) {
    this.elements[key] = value;
    this.length = Object.keys(this.elements).length;
};

Map.prototype.get = function(key) {
    return this.elements[key];
};

Map.prototype.update = function(key, value) {
    this.elements[key] = value;
};

Map.prototype.delete = function(key) {
    delete this.elements[key];
    this.length = Object.keys(this.elements).length;
};

이 클래스를 통해 데이터를 쉽게 추가, 수정, 삭제할 수 있습니다.

 

2. List 클래스 구현

이제 List 클래스를 구현해보겠습니다. 
이 클래스는 순서가 있는 데이터를 관리하는 데 사용됩니다.

function List() {
    this.elements = {};
    this.idx = 0;
    this.length = 0;
}

List.prototype.add = function(element) {
    this.length++;
    this.elements[this.idx++] = element;
};

List.prototype.get = function(idx) {
    return this.elements[idx];
};

List.prototype.init = function() {
    this.elements = {};
    this.idx = 0;
    this.length = 0;
};

List 클래스를 활용하면 데이터를 순서대로 저장하고 관리할 수 있습니다.

 

3. 간단한 웹 애플리케이션 만들기

이제 두 클래스를 활용해 과일 목록을 관리하는 웹 애플리케이션을 만들어보겠습니다. 
사용자가 과일 이름과 정보를 입력하면 목록에 추가되고, 이를 화면에 표시하는 기능을 구현해 볼게요.

 

HTML 코드

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>Map과 List 활용 예제</title>
    <script>
        // Map과 List 클래스 정의 (생략)
        // ...

        let fruitList = new List();
        let fruitInfoMap = new Map();

        function addFruit() {
            const fruitName = document.getElementById("fruitName").value;
            const fruitInfo = document.getElementById("fruitInfo").value;

            if (fruitName && fruitInfo) {
                fruitList.add(fruitName);
                fruitInfoMap.put(fruitName, fruitInfo);
                displayFruits();
            } else {
                alert("과일 이름과 정보를 입력하세요.");
            }
        }

        function displayFruits() {
            const listElement = document.getElementById("fruitList");
            listElement.innerHTML = ""; 

            for (let i = 0; i < fruitList.length; i++) {
                const fruit = fruitList.get(i);
                const info = fruitInfoMap.get(fruit);

                const listItem = document.createElement("li");
                listItem.textContent = `${fruit}: ${info}`;
                listElement.appendChild(listItem);
            }
        }
    </script>
</head>
<body>
    <h1>과일 목록 관리</h1>
    <input type="text" id="fruitName" placeholder="과일 이름">
    <input type="text" id="fruitInfo" placeholder="과일 정보">
    <button onclick="addFruit()">추가하기</button>

    <h2>현재 과일 목록</h2>
    <ul id="fruitList"></ul>
</body>
</html>
  • 입력 필드: 사용자가 과일 이름과 정보를 입력할 수 있는 필드입니다.
  • 버튼: "추가하기" 버튼을 클릭하면 입력된 과일이 목록에 추가됩니다.
  • 목록 출력: 현재 과일 목록이 아래에 자동으로 나타납니다.


오늘은 JavaScript를 사용하여 Map과 List 클래스를 직접 구현하고, 이를 활용한 예제를 알아보았습니다.
그럼 오늘도 즐거운 하루 되시길 바라겠습니다.