오늘은 객체 메서드 4 가지를 mdn을 통해 알아보려 한다.
- Object.keys()
- Object.values()
- Object.entries()
- Object.assign()
Object.keys() 메서드는 객체를 인자로 받고 주어진 객체의 key를 요소로 가진 배열을 반환한다.
const obj = {
a: "asdlkfjalk",
b: "adklfjal;dskfj",
c: "daklfjalfd;ad"
};
console.log(Object.keys(obj));
// 결과는 Array ["a", "b", "c"]
Object.values() 메서드는 객체를 인자로 받고 주어진 객체의 value를 요소로 가진 배열을 반환한다.
const obj = {
a: "asdlkfjalk",
b: "adklfjal;dskfj",
c: "daklfjalfd;ad"
};
console.log(Object.values(obj));
// 결과는 Array ["asdlkfjalk", "adklfjal;dskfj", "daklfjalfd;ad"]
Object.entries() 메서드는 객체를 인자로 받고 주어진 객체의 각 key와 해당 value가 한 쌍으로 담긴 배열을 만들고 이렇게 만들어진 배열들을 다시 하나의 배열 안에 담아 반환한다.
const obj = {
a: "asdlkfjalk",
b: "adklfjal;dskfj",
c: "daklfjalfd;ad"
};
console.log(Object.entries(obj));
// 결과는
// Array [["a", "asdlkfjalk"], ["b", "adklfjal;dskfj"], ["c", "daklfjalfd;ad"]]
Object.assign() 메서드는 두 객체를 인자로 받고 두 번째 인자로 들어간 객체의 속성들을 복사한 후 첫 번째 인자로 들어간 겍체 안에 넣어서 새로운 객체를 반환한다. 이 때, 겹치는 key가 있다면, 두 번째 인자로 들어간 객체의 속성으로 덮어쓴다. 그리고, 두 번째 객체의 복사값이 들어간 첫 번째 객체는 원본이 변한 상태가 유지된다.
const obj1 = {a: 1, b: 2};
const obj2 = {b: 3, c: 4};
const obj3 = Object.assign(obj1, obj2);
console.log(obj1);
//결과는 Object {a: 1, b: 3, c: 4}
console.log(obj3);
//결과는 Object {a: 1, b: 3, c: 4}