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

JavaScript에서 연관 배열과 해싱을 사용하는 방법

JavaScript는 연관 배열을 지원하지 않습니다

JavaScript에는 PHP 등 다른 언어에서 볼 수 있는 연관 배열(Associative Array)이 공식적으로 존재하지 않습니다. JavaScript의 배열(Array)은 오직 0부터 시작하는 숫자 인덱스를 기반으로 동작하며, 문자열 키로 요소를 직접 저장할 수 없습니다.

다음 예제처럼 배열은 숫자 인덱스를 사용해 요소를 저장하고 접근합니다.

예제: 숫자 인덱스 배열

<!DOCTYPE html>
<html>
  <body>
    <p id="test"></p>
    <script>
      var dept = [];
      dept[0] = "Amit";
      dept[1] = "Technical";
      dept[2] = 045;

      document.getElementById("test").innerHTML = dept[1] + " " + dept.length;
    </script>
  </body>
</html>

위 코드를 실행하면 Technical 3이 출력됩니다. 각 요소는 숫자 인덱스로 관리되며, length 속성으로 배열의 길이를 확인할 수 있습니다.

연관 배열이 필요하다면? 두 가지 대안

1. 객체(Object) 사용하기

문자열 키로 데이터를 저장하려면 일반 객체를 활용하는 것이 가장 널리 쓰이는 방법입니다.

var dept = {};
dept["name"] = "Amit";
dept["role"] = "Technical";

document.write(dept["name"]); // Amit

2. Map 객체 사용하기

ES6(2015)부터 도입된 Map은 키-값 쌍을 위한 전용 자료구조입니다. 모든 타입을 키로 사용할 수 있고, 삽입 순서가 유지되며 size 속성으로 크기를 바로 확인할 수 있어 해시맵 구현에 더 적합합니다.

const map = new Map();
map.set("name", "Amit");
map.set("role", "Technical");

document.write(map.get("name")); // Amit
document.write(map.size); // 2

정리

JavaScript 배열은 숫자 인덱스만 지원하므로, 키-값 형태의 해싱이 필요하다면 객체 또는 Map을 사용하는 것이 올바른 접근입니다. 단순한 문자열 키라면 객체로 충분하고, 동적 키나 순서 보장이 중요하다면 Map을 권장합니다.