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

JavaScript에서 객체의 문자열 타입 속성을 배열로 변환하는 방법

JavaScript에서 객체 내부의 문자열 타입 속성을 배열 형태로 감싸고 싶다면 Object.keys()reduce()를 함께 활용하면 됩니다. 여기에 결과를 이어 붙이기 위한 concat() 메서드까지 조합하면 깔끔하게 처리할 수 있습니다.

동작 원리

Object.keys()는 객체의 모든 키를 배열로 반환하고, reduce()는 각 키를 순회하며 새로운 객체를 만듭니다. 이 과정에서 [].concat(값)을 사용하면 값이 이미 배열인 경우 그대로 유지되고, 문자열처럼 배열이 아닌 경우에는 자동으로 배열로 감싸집니다.

예제 코드

다음은 실제 동작을 확인할 수 있는 코드입니다.

var details = { name: ["John", "David"], age1: "21", age2: "23" },
    output = Object
      .keys(details)
      .reduce((obj, tempKey) =>
        (obj[tempKey] = [].concat(details[tempKey]), obj), {})
console.log(output)

실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력하면 됩니다.

node fileName.js

여기서는 파일 이름이 demo302.js라고 가정하겠습니다.

실행 결과

프로그램을 실행하면 콘솔에 아래와 같은 결과가 출력됩니다.

PS C:\Users\Amit\javascript-code> node demo302.js
{ name: [ 'John', 'David' ], age1: [ '21' ], age2: [ '23' ] }

출력 결과를 보면 원래 배열이었던 name 속성은 그대로 유지되고, 문자열이었던 age1age2는 각각 ['21'], ['23'] 형태의 배열로 성공적으로 변환된 것을 확인할 수 있습니다.