여러 (key, value)들을 갖고있는 객체를 배열화할 일이 있다.
예를 들면
클라이언트가 요청한 리뷰 내용들을 데이터베이스에 저장하는 상황에서
서버는 클라이언트가 요청한 데이터를 데이터베이스 쿼리문에 인용해야 한다.
클라이언트에서 보낸
{
"reviewTitle" : "어서오세요",
"reviewComment" : "안녕하세요 홍지원입니다"
}
라는 Review 객체를 보냈다고 가정하자
데이터베이스의 테이블명이 review라고 할때
서버는 코드상에서 쿼리문을
query = 'INSERT INTO review (review_title, review_comment) VALUES (?, ?)'
라고 작성하고 저 두개의 ?에 클라이언트가 보낸 객체의 두 프로퍼티를 그대로 갖다 쓰면 된다.
물론 저 요청 객체의 각 프로퍼티를 각각 필드로 따로 꺼내서 저장해서
let reviewTitle = Review.reviewTitle;
let reviewComment = Review.reviewComment;
대괄호 안에 넣어서 배열로 보내는 방법도 있지만
[reviewTitle, reviewComment]
저장해야 하는 프로퍼티가 많아지거나 필드로 메모리가 쓰이는 것이 아까울 수 있다.
이 때 저 let으로 필드로 저장하는 단계를 생략하고싶을 때 필요한 것이다.
즉, 저 Review 객체를 바로 배열화하는 것
그러기 위해서 필요한 것은 'for'과 'key'인데!
for( key in '객체') {}
이렇게 하면 저 key가 객체의 각 프로퍼티를 둘러본다.
바로 사용해 보도록 하겠다
var arr = [];
for( key in Review ) {
arr.push(Review[key])
}
console.log(arr); // [ "어서오세요", "안녕하세요 홍지원입니다" ]
이렇게 "객체를 바로 배열화" 할 수 있는 것이다.
익숙하지 않은 점은 저 key를 추출해보면 각 프로퍼티의 key명을 갖고있다.
그리고 배열에서 많이 보는 대괄호[]를 객체에 적용하고 있다는 것이다.
위 가정에서처럼 객체의 각 프로퍼티를 따로 저장하는 과정을 생략하고 싶은 개발자분들께 추천드린다.
반응형
'인포테인먼트 - development > javascript' 카테고리의 다른 글
[javascript] 문자열 Byte단위로 자르기 (0) | 2020.06.09 |
---|---|
[javascript] join() - 배열을 문자열로 변환 (0) | 2020.04.24 |
[javascript] 객체{}에 프로퍼티(key : value) 추가하는 방법 (0) | 2020.03.01 |
댓글