JavaScript 객체의 모든 프로퍼티 값을 담은 배열을 만들어야 하는 경우가 종종 있습니다. 예를 들어, 다음과 같은 객체가 있다고 가정해 보겠습니다.
{
"firstName": "John",
"lastName": "Smith",
"isAlive": "true",
"age": "25"
}이 객체에서 다음과 같은 배열을 만들어야 합니다.
const myarray = ['John', 'Smith', 'true', '25'];
그렇다면 이 작업을 수행하는 함수를 직접 작성해 보겠습니다.
예제 코드
Object.keys() 메서드를 활용하면 객체의 모든 키를 가져온 뒤, 각 키에 해당하는 값을 순서대로 새로운 배열에 담을 수 있습니다.
const obj = {
"firstName": "John",
"lastName": "Smith",
"isAlive": "true",
"age": "25"
};
const objectToArray = obj => {
const keys = Object.keys(obj);
const res = [];
for(let i = 0; i < keys.length; i++){
res.push(obj[keys[i]]);
};
return res;
};
console.log(objectToArray(obj));실행 결과
콘솔에 출력되는 결과는 다음과 같습니다.
[ 'John', 'Smith', 'true', '25' ]
더 간단한 방법: Object.values() 활용하기
사실 위 과정은 Object.values() 메서드를 사용하면 단 한 줄로 해결할 수 있습니다. 이 메서드는 객체의 모든 열거 가능한 프로퍼티 값을 배열 형태로 바로 반환해 주기 때문입니다.
const obj = {
"firstName": "John",
"lastName": "Smith",
"isAlive": "true",
"age": "25"
};
const res = Object.values(obj);
console.log(res);두 방법 모두 동일한 결과를 출력하지만, 실무에서는 코드가 간결하고 가독성이 좋은 Object.values() 방식을 사용하는 것이 권장됩니다. 다만 반복문을 직접 활용하는 첫 번째 방식은 값에 추가적인 가공이나 조건 처리가 필요할 때 유용하게 확장할 수 있습니다.