답변
이것은 es2015 사전 설정을 사용하여 작동하지 않지만 es2016을 사용하여 작동합니다.
이것을 시도하면 https://babeljs.io/repl입니다. 이 하나가 작동하지 않는 이유를 업데이트
을 보여줍니다.
은 또한 당신이 원하는 것은 이 한 줄을 destructuring와 현재 달성하지 생각합니다. 실제로에 변수 할당을 원하지 않는 한 첫 번째 의도에 더 충실해야합니다. 그런 경우 IIFE 키를 필터링하는 것이 좋습니다.
const obj = {location: Object.assign({}, data)}
또는도 : zeroflagl 말했다
으로 데이터를 복사 할 경우 당신이 그것을 사용할 수 있습니다 ES의 제안 단계 3.
const data = {
address: 'address',
cityDistrict: 'district',
city: 'city',
country: 'country'
}
const { address, cityDistrict, city, country } = data;
const obj = {
location: {...data}
};
console.log(obj)
/* logs Object {
"location": Object {
"address": "address",
"city": "city",
"cityDistrict": "district",
"country": "country"
}
}
*/
예상되는 동작을 확신 할 수 없습니다 - 두 개의 사전 설정 플러그인간에 서로 다른 구문 분석 기술의 부작용이있을 수 있습니까? – CodingIntrigue
당신은 맞습니다. 코딩 의향이 있습니다. 그리고 당신의 '예상치 못한 데이터를 얻습니다. 그것의 부작용으로, 범위에서 4 개의 새로운 변수를 얻게 될 것입니다. 우리가 할 수있는 최선의 방법은'data'를 매개 변수로 사용하여 키를 필터링하는 즉각적으로 호출되는 함수 표현식이라고 생각합니다. 그러나 결과는 원래 코드보다 이해하기 쉽지 않습니다. – damienc
_ "당신이 원하는 것은 destructuring one-liner로는 달성 할 수 없습니다."_ 데이터에 추가 속성이 없습니다 : 위치 : {... 데이터}. 3 단계 제안. – zeroflagL
를 사용하는 경우, 당신은 spread properties를 사용하여 작업을 수행 할 수 있습니다 다음 코드를 사용할 수 있지만 obj.location을 변경하면 데이터가 변경 될 수 있습니다.
const obj = {location: data}
(Chrome에서 적어도 괄호 안에 과제를 래핑하는 경우 Babel에서도) 두 코드는 동일하지 않습니다..
코드의 두 번째 부분은 단순히 location
속성 data
을 할당하고, address
cityDistrict
라는 범위에서 4 개 개의 새로운 변수 등 예컨대
작성 올바른 기록 같이
const data = {
address: "Address",
cityDistrict: "District",
city: "City",
country: "Country"
}
const obj = {
location: ({address, cityDistrict, city, country} = data)
};
console.log(obj);
보이는 데이터이지만 실제로 인쇄되는 것은 data
, 새 개체가 아닙니다입니다. 따라서 다음과 같이하면 :
const obj = {
location: ({address, cityDistrict, city, country} = data)
};
data.address = "Test"
console.log(obj); // location.Address = Test
예기치 않은 데이터가 발생합니다.그 부작용으로, 당신은 또한 범위에 4 개 개의 새로운 변수를 얻을 것 :
const obj = {
location: Object.assign({}, data);
}
안녕하세요! 대답 해 주셔서 감사합니다. 그러나'data.assign ({}, data)'를 쓰지는 못합니다. 왜냐하면'data '안에 많은 미사용 데이터가 있기 때문입니다. – rel1x
@ rel1x 알아요. 나는 보통 [lodash.pick] (https://www.npmjs.com/package/lodash.pick) 또는 [이 기본 구현]을 사용합니다 (http://stackoverflow.com/questions/25553910/one-liner-to- take-some-properties-object-in-es-6) – CodingIntrigue
- 1. 내가 좋아하는 코드 블록을 수행 할 필요가
- 2. 내가 코드 블록을 향상시킬 수있는 방법 장고
- 3. 는 UnauthorizedAccessException 내가 같은 코드
- 4. GitHub는 코드 블록을 삭제했습니다.
- 5. 코드 블록을 숨기는 방법
- 6. 내가 코드 블록을 언급 할 때마다 나는이 단계를 수행 정력
- 7. 이 코드 블록을 이해하려고 시도했습니다.
- 8. 코드의 라인을 분리하는 것은 내가 다음과 같습니다 코드 블록을
- 9. 파일에서 코드 블록을 삭제 sed
- 10. PHP PDO 나는 코드 블록을
- 11. HTML의 코드 블록을 사용하는 방법
- 12. - [NSInvocation retainArguments]는 블록을 복사합니까?
- 13. 코드 블록을 사용하여 User.Identify.Name을 선택하십시오.
- 14. 실패한 코드 블록을 무시합니다. C++
- 15. asp.net에서 인라인 코드 블록을 이스케이프?
- 16. 반복 코드 용 컨트롤러에서 코드 블록을 레일링하십시오.
- 17. 코드 블록을 MVC 면도기 코드 블록으로 변환
- 18. 내가 다음 코드 블록을 가지고 주어진 자바 스크립트
- 19. 내가 (들여 쓰기는 탭입니다) 옥에 코드 블록을 넣어 싶습니다
- 20. 전처리 기가 코드 블록을 처리하도록하기
- 21. 는 (내가 추측하고있어 저를 믿는) 추측에서이 코드
- 22. 는 R : 내가 다음 코드 한 DataFrame
- 23. 는 ADODB 레코드 내가 코드 아래 사용하고
- 24. 는 내가 루프를 작성하는 명령이 코드 점화
- 25. SPListItem.Update는 다음 코드 블록을 사용하여
- 26. 코드 블록을 구성하는 방법은 무엇입니까?
- 27. 코드 블록을 열 수 없습니다.
- 28. 다른 블록을 우회하지 않고 코드 블록을 실행하는 방법? Java
- 29. Markdown 목록에 표준 코드 블록을 추가하는 형식
- 30. CKEditor : 미리보기에서 코드 블록을 다르게 표시하는 방법
:
는당신이 정말로 원하는 것은 개체의 새 인스턴스를 만들 수
Object.assign
을 사용하는 것입니다 이 위치와 같은 것을해야 할 것입니다. {address : data.address, cityDistrict : data.cityDistrict, city : data.city, country : data.country} ... ... – evolutionxbox크롬? 특별히 귀하의 오류가 무엇입니까? 브라우저 특정 있습니까? – ste2425
저를 위해 일합니다, 당신은 그것을 무엇에 시험하고 있습니까? – Undefined