반응형
ES6로 두 개체 병합 [중복]
이 질문에 이미 답변이 있습니다.
이 질문이 이전에 요청되었다고 확신하지만 내가 찾고있는 답을 찾을 수 없으므로 여기에 있습니다.
다음과 같이 두 개의 개체가 있습니다.
const response = {
lat: -51.3303,
lng: 0.39440
}
let item = {
id: 'qwenhee-9763ae-lenfya',
address: '14-22 Elder St, London, E1 6BT, UK'
}
이것을 형성하려면 이들을 병합해야합니다.
item = {
id: 'qwenhee-9763ae-lenfya',
address: '14-22 Elder St, London, E1 6BT, UK',
location: {
lat: -51.3303,
lng: 0.39440
}
}
다음과 같이 할 수 있습니다.
item.location = {}
item.location.lat = response.lat
item.location.lng = response.lng
그러나 ES6가 멋진 구조화 / 할당을 도입했기 때문에 이것이 더 이상 최선의 방법이 아니라고 생각합니다. 깊은 객체 병합을 시도했지만 불행히도 지원되지 않습니다.
그렇다면 ES6를 사용하여이 두 개체를 병합하는 가장 좋은 방법은 무엇입니까?
를 사용 Object.assign()
하여 새 개체로 병합 할 수 있습니다 .
const response = {
lat: -51.3303,
lng: 0.39440
}
const item = {
id: 'qwenhee-9763ae-lenfya',
address: '14-22 Elder St, London, E1 6BT, UK'
}
const newItem = Object.assign({}, item, { location: response });
console.log(newItem );
ECMAScript에 대한 4 단계 제안 인 object spread를 사용할 수도 있습니다 .
const response = {
lat: -51.3303,
lng: 0.39440
}
const item = {
id: 'qwenhee-9763ae-lenfya',
address: '14-22 Elder St, London, E1 6BT, UK'
}
const newItem = { ...item, location: response }; // or { ...response } if you want to clone response as well
console.log(newItem );
또 다른 문제는 다음과 같습니다.
let result = { ...item, location : { ...response } }
도움이 될 수도 있습니다 : https://stackoverflow.com/a/32926019/5341953
참고 URL : https://stackoverflow.com/questions/39121695/merge-two-objects-with-es6
반응형
'developer tip' 카테고리의 다른 글
언제 힙을 사용하고 싶습니까? (0) | 2020.10.07 |
---|---|
.NET DLL에 git 커밋 해시 포함 (0) | 2020.10.07 |
왜 'd / = d'는 d == 0 일 때 0으로 나누기 예외를 발생시키지 않습니까? (0) | 2020.10.07 |
유니 코드를 사용한 Python 및 정규식 (0) | 2020.10.07 |
HTML, CSS 웹 페이지 만 Tomcat에 배포 (0) | 2020.10.07 |