728x90
js에서 객체는 동일한 key값(프로퍼티명)이 있는 경우 뒤의 프로퍼티가 첫 번째 프로퍼티를 덮어쓴다.
let a = {x: 1, x: 2}
console.log(a) // {x: 2}
이를 이용해 객체를 스프레드 연산자로 가져오면서 수정을 해줄 수 있다.
let obj = {
name: "john",
job: "dev",
};
console.log({ ...obj, job: "devdevdevdevdev" });
// => { name: 'john', job: 'devdevdevdevdev' }
혹시라도 객체 안에 객체가 또다시 있는 형식의 데이터에서 수정이 이뤄져야 한다면,
유사하게 아래와 같이 적용해줄 수 있다.
let obj = {
name: "1223",
job: "222222",
count: {
like: 50,
comment: 50,
},
};
console.log({ ...obj, count: { like: 10, comment: obj.count.comment } });
// =>
// { name: '1223', job: '222222', count: { like: 10, comment: 50 } }
조금 번거로워지지만 정상적으로 객체를 복사하면서 잘 수정돼있는 것을 볼 수 있다.
728x90
'개발일지 > JavaScript' 카테고리의 다른 글
jest를 통한 테스트코드 사용 (1) | 2023.03.18 |
---|---|
Dynamic import를 사용해 동적으로 모듈 가져오기 (0) | 2023.03.18 |
자바스크립트 씹어먹기 (1) | 2022.09.27 |
javaScript axios 사용하기 (0) | 2022.08.27 |
javaScript 배열 다뤄보기 2 (0) | 2022.08.24 |
댓글