[lodash] 객체 내부에 객체를 삽입하는 방법 _.set()

0
1131

set 메소드는 객체의 속성에 값을 할당하는 기능을 수행합니다. 이 메소드를 사용하면 객체 내에 존재하지 않는 속성도 자동으로 생성하고 값을 할당할 수 있습니다. 또한, 객체의 중첩된 속성도 점 또는 배열 인덱스를 사용하여 쉽게 접근할 수 있습니다. set 메소드에 대해서 알아보겠습니다.

set 메소드의 구문

_.set(object, path, value)
  • object: 값을 할당할 대상 객체입니다.
  • path: 값을 할당할 속성의 경로입니다. 문자열 또는 배열 형태로 지정할 수 있습니다.
  • value: 할당할 값입니다.

set 메소드의 동작 방식

set 메소드는 object 객체 내의 path 경로에 value 값을 할당하는 역할을 합니다. path 경로는 문자열 또는 배열로 지정할 수 있으며, 여러 단계의 중첩된 속성에도 접근할 수 있습니다.

// 대상 객체
const person = {
  name: 'Lee',
  age: 18,
  address: {
    city: 'Seoul',
    postCode: '10001'
  }
};

// `set` 메소드를 사용하여 값을 할당
_.set(person, 'name', 'Kim');
_.set(person, 'address.city', 'Busan');
_.set(person, ['address', 'postCode'], '90001');
_.set(person, 'hobbies[0]', 'Reading');

console.log(person);
/*
출력 결과:
{
  name: 'Kim',
  age: 18,
  address: {
    city: 'Busan',
    postCode: '90001'
  },
  hobbies: ['Reading']
}
*/

객체 내에 객체를 삽입하는 예제

set 메소드를 사용하면 간편하게 객체 내에 객체를 삽입할 수 있습니다.

// 대상 객체
const person = {
  name: 'Lee',
  age: 18,
};

// 중첩된 객체를 삽입할 경로
const path = 'address';

// 삽입할 중첩된 객체
const address = {
  city: 'Seoul',
  postCode: '10001',
};

// set 메소드를 사용하여 중첩된 객체를 삽입
_.set(person, path, address);

console.log(person);
/*
출력 결과:
{
  name: 'Lee',
  age: 18,
  address: {
    city: 'Seoul',
    postCode: '10001',
  }
}
*/

Lodash의 set 메소드는 객체의 속성에 값을 할당하고, 중첩된 속성에도 간편하게 접근할 수 있는 유용한 메소드입니다. set 메소드를 사용하여 객체를 쉽게 조작하고 관리할 수 있으며, 존재하지 않는 속성도 자동으로 생성되므로 편리하게 활용할 수 있습니다.