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

JavaScript에서 조건에 따라 객체에 키-값 쌍 추가하기

JavaScript에서 조건에 따라 키-값 쌍 추가하는 방법

JavaScript에서 조건을 기준으로 객체(사전)에 새로운 키-값 쌍을 동적으로 추가해야 하는 경우가 자주 있습니다. 이럴 때 Object.assign() 메서드를 활용하면 깔끔하게 처리할 수 있습니다. 아래 예제는 학생 이름이 특정 목록에 포함되어 있는지 여부에 따라 lastName이라는 새로운 속성을 조건부로 추가하는 방법을 보여줍니다.

예제 코드

const details = {
  john: { 'studentName': 'John' },
  david: { 'studentName': 'David' },
  mike: { 'studentName': 'Mike' },
  bob: { 'studentName': 'Bob' },
  carol: { 'studentName': 'Carol' }
},
join_values = ['David', 'Carol'],
output = Object.assign(
  {},
  ...Object
    .keys(details)
    .map(key =>
      ({[key]: {
          ...details[key],
          lastName: join_values.includes(details[key].studentName) ?
            'Miller' : 'Smith'
      }})))
console.log(output)

코드 설명:

  • Object.keys(details) : 객체의 모든 키(john, david 등)를 배열로 가져옵니다.
  • .map() : 각 키에 대해 새로운 객체를 생성하며, 스프레드 연산자(...)로 기존 속성을 복사한 뒤 조건에 따라 lastName을 추가합니다.
  • join_values.includes() : 학생 이름이 목록에 있으면 'Miller', 없으면 'Smith'를 값으로 지정합니다.
  • Object.assign() : 변환된 개별 객체들을 하나의 객체로 병합합니다.

실행 방법

위 프로그램을 실행하려면 다음 명령어를 사용합니다.

node fileName.js

출력 결과

파일 이름이 demo157.js인 경우, 실행 결과는 다음과 같습니다.

PS C:\Users\Amit\JavaScript-code> node demo157.js
{
    john: { studentName: 'John', lastName: 'Smith' },
    david: { studentName: 'David', lastName: 'Miller' },
    mike: { studentName: 'Mike', lastName: 'Smith' },
    bob: { studentName: 'Bob', lastName: 'Smith' },
    carol: { studentName: 'Carol', lastName: 'Miller' }
}

결과를 보면 DavidCaroljoin_values 배열에 포함되어 있으므로 lastName'Miller'로 설정되었고, 나머지 학생들은 'Smith'로 할당된 것을 확인할 수 있습니다.