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

JavaScript에서 forEach()와 push()로 연관 배열(Associative Array) 만들기

JavaScript에서 객체 배열을 특정 키 값을 기준으로 그룹화된 연관 배열(객체)로 변환하고 싶다면 forEach() 루프와 push() 메서드를 함께 사용하면 됩니다. 이 방법은 배열의 각 요소를 순회하면서 원하는 키에 해당하는 값을 배열로 묶어주는 간단하고 효율적인 기법입니다.

예제 코드

아래 예제에서는 학생 정보 배열을 학생 ID(studentId)를 키로 하는 연관 배열로 변환하여, 같은 ID를 가진 학생들의 이름을 하나의 배열에 담습니다.

var studentDetails = [
    {
        studentId: 1,
        studentName: "John"
    },
    {
        studentId: 1,
        studentName: "David"
    },
    {
        studentId: 2,
        studentName: "Bob"
    },
    {
        studentId: 2,
        studentName: "Carol"
    }
];

studentObject = {};

studentDetails.forEach(function (obj) {
    studentObject[obj.studentId] = studentObject[obj.studentId] || [];
    studentObject[obj.studentId].push(obj.studentName);
});

console.log(studentObject);

코드 설명

  • 먼저 빈 객체 studentObject를 선언합니다.
  • forEach()studentDetails 배열의 각 객체를 순회합니다.
  • studentObject[obj.studentId] = studentObject[obj.studentId] || []; 구문은 해당 ID가 아직 존재하지 않으면 빈 배열을 새로 생성합니다.
  • 마지막으로 push()를 사용해 해당 ID의 이름(studentName)을 배열에 추가합니다.

프로그램 실행 방법

Node.js 환경에서 위 프로그램을 실행하려면 다음 명령어를 입력합니다.

node fileName.js

여기서는 파일 이름을 demo116.js로 저장했다고 가정합니다.

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

PS C:\Users\Amit\JavaScript-code> node demo116.js
{ '1': [ 'John', 'David' ], '2': [ 'Bob', 'Carol' ] }

출력 결과에서 볼 수 있듯이, 학생 ID 1에는 John과 David가, 학생 ID 2에는 Bob과 Carol이 각각 그룹화되어 저장되었습니다. 이처럼 forEach()push()를 조합하면 복잡한 라이브러리 없이도 데이터를 손쉽게 그룹화할 수 있습니다.