포스트

중첩 객체에 키-값 추가하기

문제 상황

JavaScript에서 객체는 자주 사용되는 데이터 타입입니다. 중첩된 객체에서 모든 객체에 동일한 키와 값을 추가하고 싶을 수 있습니다. 예를 들어, 원래 객체가 다음과 같다고 가정해 봅시다.

1
2
3
4
5
const obj = {
  a: { x: 1, y: 2 },
  b: { x: 3, y: 4 },
  c: { x: 5, y: 6 }
};

이 객체의 모든 중첩 객체에 z: 0이라는 키와 값을 추가하고 싶습니다.

Object.keysforEach 사용하기

이 작업을 수행하기 위한 간단한 방법은 Object.keysforEach를 사용하는 것입니다. Object.keys 함수는 객체의 모든 키를 배열로 반환합니다. 이 배열을 forEach로 순회하면서 각 객체에 새로운 키와 값을 추가할 수 있습니다.

1
2
3
Object.keys(obj).forEach(key => {
  obj[key].z = 0;
});

재귀 함수를 이용한 중첩 객체 처리

만약 객체가 다단계로 중첩되어 있다면, 재귀 함수를 사용하여 문제를 해결할 수 있습니다. 재귀 함수는 함수 내에서 자신을 다시 호출하는 함수입니다.

1
2
3
4
5
6
7
8
function addKeyToAllNestedObjects(object, newKey, newValue) {
  Object.keys(object).forEach(key => {
    if (typeof object[key] === 'object') {
      addKeyToAllNestedObjects(object[key], newKey, newValue);
    }
  });
  object[newKey] = newValue;
}

이 함수를 사용하면 다음과 같이 호출할 수 있습니다.

1
addKeyToAllNestedObjects(obj, 'z', 0);

코드 오류: 없음

이 기술에는 특별한 코드 오류(Error Name)가 없습니다. 문제 상황이나 목적에 따라 적절한 방법을 선택하면 됩니다.

결론

중첩된 객체에 동일한 키-값을 추가하는 것은 JavaScript에서 Object.keysforEach, 또는 재귀 함수를 이용하면 간단히 해결할 수 있습니다. 이러한 방법은 코드의 유연성과 확장성을 높이는 데 도움이 됩니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.