본문 바로가기

Javascript

객체 메소드 Object.keys()

1️⃣ Object.keys() 메소드(객체가 가진 여러가지 기능) : key를 가져오는 메소드

let person = {
  name: "홍길동",
  age: 30,
  gender: "남자"
};

let keys = Object.keys(person);

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

Object.keys() 메소드를 사용하여 객체 person의 속성 이름을 배열로 반환한다. Object.keys() 메소드는 객체의 속성 이름을 배열로 반환한다.

 

2️⃣ Object.values() 메소드

let person = {
  name: "홍길동",
  age: 30,
  gender: "남자"
};

let values = Object.values(person);

console.log(values);   // ["홍길동", 30, "남자"]

Object.values() 메소드를 사용하여 객체 person의 속성 값들을 배열로 반환한다. Object.values() 메소드는 객체의 속성 값들을 배열로 반환한다.

3️⃣ Object.entries() 메소드 : key와 value를 묶어서 배열로 만든 배열!!(2차원 배열)

let person = {
  name: "홍길동",
  age: 30,
  gender: "남자"
};

let entries = Object.entries(person);

console.log(entries);

Object.entries() 메소드를 사용하여 객체 person의 속성 이름과 속성 값들을 2차원 배열로 반환한다. Object.entries() 메소드는 객체의 속성 이름과 속성 값들을 2차원 배열로 반환한다.

 

4️⃣ Object.assign() 메소드 : 객체를 복사

let person = {
  name: "홍길동",
  age: 30,
  gender: "남자"
};

let newPerson = Object.assign({}, person, { age: 35 });

console.log(newPerson);   // { name: "홍길동", age: 35, gender: "남자" }

Object.assign() 메소드를 사용하여 새로운 객체 newPerson을 만든다. Object.assign() 메소드는 기존 객체를 복사하여 새로운 객체를 만든다.

 

5️⃣ 객체 비교

( 객체와 배열은 크기가 상당히 크기 때문에 메모리에 저장할 때 별도의 공간에 저장)

let person1 = {
  name: "홍길동",
  age: 30,
  gender: "남자"
};

let person2 = {
  name: "홍길동",
  age: 30,
  gender: "남자"
};

console.log(person1 === person2);   // false
console.log(JSON.stringify(person1) === JSON.stringify(person2));   // true

두 개의 객체를 생성하고, 객체 비교를 한다. 객체를 비교할 때는 일반적으로 === 연산자를 사용할 수 없다. 대신 JSON.stringify() 함수를 사용하여 객체를 문자열로 변환한 후, 문자열 비교를 한다.

 

6️⃣ 객체 병합 ... : spread operator

let person1 = {
  name: "홍길동",
  age: 30
};

let person2 = {
  gender: "남자"
};

let mergedPerson = {...person1, ...person2};

console.log(mergedPerson);   // { name: "홍길동", age: 30, gender: "남자" }

객체 병합을 한다. 객체 병합을 할 때는 전개 연산자(...)를 사용한다.