JavaScript에는 다른 언어와 달리 별도의 '연관 배열(associative array)' 자료형이 존재하지 않습니다. 대신 객체(Object)를 활용하면 키와 값을 연결하는 연관 배열과 동일한 구조를 손쉽게 만들 수 있습니다.
배열의 요소를 키로, 배열 인덱스를 값으로 사용하는 객체를 만들려면 forEach() 메서드와 대괄호 [] 계산된 속성명(computed property name)을 함께 사용하면 됩니다.
예제 코드
다음은 이름 배열을 순회하면서 각 이름을 키로, 해당 인덱스를 값으로 갖는 객체를 생성하는 코드입니다.
var result = {};
var names = ['John', 'David', 'Mike', 'Sam', 'Bob', 'Adam'];
names.forEach((nameObject, counter) => {
var generatedValues = { [nameObject]: counter };
Object.assign(result, generatedValues)
})
console.log(result);코드 설명
- forEach() – 배열의 각 요소와 해당 요소의 인덱스(counter)를 차례대로 순회합니다.
- { [nameObject]: counter } – 대괄호 표기법을 사용해 배열 요소(nameObject)를 동적으로 객체의 키로 지정하고, 그 값으로 인덱스(counter)를 할당합니다.
- Object.assign() – 생성된 키-값 쌍을 result 객체에 하나씩 병합합니다.
실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 아래 명령어를 입력합니다.
node fileName.js
여기서는 파일 이름이 demo290.js라고 가정합니다.
출력 결과
프로그램을 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.
PS C:\Users\Amit\javascript-code> node demo290.js
{ John: 0, David: 1, Mike: 2, Sam: 3, Bob: 4, Adam: 5 }이처럼 forEach()와 계산된 속성명을 조합하면 배열의 요소를 키로, 인덱스를 값으로 하는 연관 배열 형태의 객체를 간단하게 생성할 수 있습니다.