Object.key()
객체의 키를 모두 가져와 배열로 반환
let person = {
name: "Kim",
age: 30,
};
let keys = Object.keys(person);
console.log(keys); // ['name', 'age']
Object.values()
객체의 값들을 모두 가져와 배열로 반환
let values = Object.values(person);
console.log(values); // ['Kim', 30]
Object.entries()
객체의 key-value를 하나의 배열로 묶어 만든 배열을 반환 (2차원 배열)
let entries = Object.entries(person);
console.log(entries); // [['name', 'Kim'], ['age', 30]]
Object.assign()
객체를 복사하여 반환
let newPerson = {};
Object.assign(newPerson, person);
console.log(newPerson); // { name: 'Kim', age: 30 }
assign에 인자를 하나 더 넘기면 일부 속성만 변경하여 복사할 수 있다!
let newPerson = {};
Object.assign(newPerson, person, { age: 50 });
console.log(newPerson); // { name: 'Kim', age: 50 }
객체 비교
let str1 = "aaa";
let str2 = "aaa";
console.log(str1 === str2); // true
let person1 = {
name: 'Kim',
age: 30,
};
let person2 = {
name: 'Kim',
age: 30,
};
console.log(person1 === person2); // false
객체를 === 연산자로 비교했을 때 내부의 key-value가 같더라도 false를 반환
내부의 값을 비교하는 것이 아니라, person1과 person2의 값이 저장된 주소를 비교하는 것이 되기때문!
그럼 내부 값이 일치하는지 확인하고 싶으면 어떻게 해야할까?
JSON.stringify()
객체 내부의 key-value를 문자열로 변경한 값을 받을 수 있음
console.log(JSON.stringify(person1) === JSON.stringify(person2)); // true!
객체 병합 (스프레드 오퍼레이터)
두개 이상의 객체가 있을 때 이 객체들의 key-value를 모아 하나의 객체를 만들고싶을 때 스프레드 오퍼레이터를 사용할 수 있다.
let personData1 = {
name: 'Kim',
};
let personData2 = {
age: 30,
};
let person = { ...personData1, ...personData2 };
console.log(person); // { name: 'Kim', age: 30 }
'JavaScript' 카테고리의 다른 글
[JavaScript] 일급 객체로서의 함수 (0) | 2024.07.22 |
---|---|
[JavaScript] ES6 추가 문법들 (0) | 2024.07.22 |
[JavaScript] 삼항연산자와 단축평가 활용하기 (조건부실행, 기본값지정) (1) | 2024.07.22 |
[JavaScript] 형변환 (0) | 2024.07.22 |
[Firebase] firestore 데이터 일부 수정하기 (updateDoc/JavaScript) (0) | 2024.07.19 |