[JS] 길이가 같은 두 배열을 각각 키,값으로 하여 객체 생성하기

Woonil·2024년 11월 19일
0

자바스크립트

목록 보기
1/1

[출처: ChatGPT]

const keys = ["name", "age", "city"];
const values = ["Alice", 25, "New York"];

JavaScript에서 길이가 같은 두 배열(위의 두 배열 참고)을 각각 키와 값으로 사용하여 객체를 생성하려면, 다음과 같은 방법을 사용할 수 있습니다.

reduce를 사용

reduce 메서드를 사용하여 키 배열과 값 배열을 조합하여 객체를 생성합니다.

MDN 공식

const obj = keys.reduce((acc, key, index) => {
    acc[key] = values[index];
    return acc;
}, {});

console.log(obj); // { name: 'Alice', age: 25, city: 'New York' }

Object.fromEntries를 사용

Object.fromEntries와 map을 조합하면 배열을 바로 객체로 변환할 수 있습니다.

MDN 공식

const obj = Object.fromEntries(keys.map((key, index) => [key, values[index]]));

for 반복문을 사용

전통적인 방법으로 for문을 사용해 객체를 생성할 수도 있습니다.

const obj = {};
for (let i = 0; i < keys.length; i++) {
    obj[keys[i]] = values[i];
}

forEach를 사용

forEach를 사용하여 객체를 생성하는 방법도 있습니다.

const obj = {};
keys.forEach((key, index) => {
    obj[key] = values[index];
});
방법장점단점
reduce간결하고 함수형 프로그래밍에 적합가독성이 떨어질 수 있음
Object.fromEntries최신 문법으로 간결하게 작성 가능오래된 환경에서는 지원되지 않음
for직관적이고 모든 환경에서 동작코드가 길어질 수 있음
forEachfor보다 간결하고 가독성이 높음반복문보다는 약간 느림

개인적으로는 간결한 fromEntries() 를 선호하는 편입니다:)

profile
우니리개발일지

0개의 댓글