[출처: ChatGPT]
const keys = ["name", "age", "city"];
const values = ["Alice", 25, "New York"];
JavaScript에서 길이가 같은 두 배열(위의 두 배열 참고)을 각각 키와 값으로 사용하여 객체를 생성하려면, 다음과 같은 방법을 사용할 수 있습니다.
reduce 메서드를 사용하여 키 배열과 값 배열을 조합하여 객체를 생성합니다.
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와 map을 조합하면 배열을 바로 객체로 변환할 수 있습니다.
const obj = Object.fromEntries(keys.map((key, index) => [key, values[index]]));
전통적인 방법으로 for문을 사용해 객체를 생성할 수도 있습니다.
const obj = {};
for (let i = 0; i < keys.length; i++) {
obj[keys[i]] = values[i];
}
forEach를 사용하여 객체를 생성하는 방법도 있습니다.
const obj = {};
keys.forEach((key, index) => {
obj[key] = values[index];
});
방법 | 장점 | 단점 |
---|---|---|
reduce | 간결하고 함수형 프로그래밍에 적합 | 가독성이 떨어질 수 있음 |
Object.fromEntries | 최신 문법으로 간결하게 작성 가능 | 오래된 환경에서는 지원되지 않음 |
for | 직관적이고 모든 환경에서 동작 | 코드가 길어질 수 있음 |
forEach | for보다 간결하고 가독성이 높음 | 반복문보다는 약간 느림 |
개인적으로는 간결한 fromEntries()
를 선호하는 편입니다:)