[JS] 객체의 프로퍼티에 접근할 때 유용한 3가지

NodeJS 2023. 5. 16.
  • Object.keys()
  • Object.entries()
  • for...in

 

 

Object.keys()

 

이 메소드는 인자로 받은 객체의 모든 key를 배열로 리턴한다.

let user = {
  name: "John",
  age: 30,
  city: "Seoul"
};

let keys = Object.keys(user);

console.log(keys); // ["name", "age", "city"]

 

 

활용방법

Database의 데이터를 수정할 때 사용하면 좋다. 

// app.put 라우터 핸들러 내부 모습이다. 생략된 코드가 있으니 이해용도로만 보자
const { id } = req.params;
const newInfo = req.body;
const member = await Member.findOne({ where: { id } })

Object.keys(newInfo).forEach((prop) => {
  newInfo[prop]
})

 

 

 

Object.entries()

 

이 메소드는 객체의 모든 key-value 쌍을 2차원 배열로 리턴한다.

let user = {
  name: "John",
  age: 30,
  city: "Seoul"
};

let entries = Object.entries(user);

console.log(entries); 
// [["name", "John"], ["age", 30], ["city", "Seoul"]]

 

 

 

for...in

 

이 반복문을 사용하면 모든 열거 가능한 프로퍼티들을 반복한다. 

 

더보기: for...in 반복문이란?

더보기

for...in 반복문

 

for (let 변수 in 객체) {

    반복내용

};

 

여기서 변수는 객체의 프로퍼티가 할당된다.(변수 = 프로퍼티) 대표적으로 이 프로퍼티를 사용해서 객체의 값에도 접근이 가능하다.

예를 들면, 반복내용에 console.log(객체[변수]) 형식으로 작성하게 되면 일반적으로 객체에 접근하는 것처럼 접근이 가능하다.

 

let user = {
  name: "John",
  age: 30,
  city: "Seoul"
};

for (let key in user) {
  console.log(key + ": " + user[key]);
}
// name: John
// age: 30
// city: Seoul