Object.keys(), values, entries, assign

quin1392·2022년 6월 4일
0

Object.keys()

Object.keys() 메서드는 주어진 객체의 속성 이름들을 순서대로 나열된 배열의 형태로 반환합니다. 쉽게 말해 객체의 키를 모아 배열의 형태로 보여줍니다.

const student = {
  name : '철수',
  age : 10,
  school : '초등학교'
}

console.log(Object.keys(student))
// expected output : Array ['name', 'age', 'school']

이 메서드는 Object.keys()의 매개변수로 객체를 입력받습니다. 입력 받은 객체의 키를 모아 배열로 반환합니다. 반환 받은 배열의 각 요소들은 문자열 형태로 저장되어있습니다.

Object.values()

Object.values() 메서드는 입력된 객체가 가지고 있는 속성의 값들로 이루어진 배열을 리턴합니다. Object.keys()가 속성들의 배열이었다면 Object.values()는 그 속성의 값들로 이루어진 배열입니다.

const student = {
  name : '철수',
  age : 10,
  school : '초등학교'
}

console.log(Object.values(student))
// expected output : Array ['철수', 10, '초등학교']

Object.values()는 리턴하는 배열 안의 각 요소에 대해 원래 객체에서 속성의 값이 가지고 있던 타입으로 입력됩니다.

Object.entries()

Object.entries() 메서드는 for...in과 같은 순서로 주어진 객체 자체의 [key, value] 쌍의 배열을 반환합니다.

const student = {
  name : '철수',
  age : 10,
  school : '초등학교'
}

for (const [key, value] of Object.entries(student)) {
  console.log(`${key}: ${value}`);
}
// expected output :
// 'name: 철수'
// 'age: 10'
// 'school: 초등학교'

각 index에 위치한 키와 키의 값에 대해 사용할 필요가 있을 때 유용하게 사용할 수 있습니다.

Object.assign()

Object.assign() 메서드는 입력받은 두 객체를 합쳐서 새로운 객체로 반환합니다. 합치는 기준은 우선 겹치지 않는 키에 대해서는 그대로 입력을 받고, 겹치는 키에 대해서 해당 키의 값은 뒤에 들어가는 객체의 값으로 결정됩니다.

const student1 = {
  name : '철수',
  age : 10,
  school : '초등학교'
}
const student2 = {
  name : '영희',
  address: '서울',
}

const assingObject = Object.assing(student1, student2)

console.log(assingObject)
// expected output : Object { name: '영희', age: 10, school: '초등학교', address: '서울' }

앞의 객체를 우선 복사하고, 뒤의 객체의 키를 하나씩 비교하며 키가 있다면 뒤의 객체의 값으로 대체하고, 키가 없다면 뒤에 해당 키와 키값을 추가한다고 생각하면 이해하기 쉬울 것 같습니다.

0개의 댓글