D3js에서 forEach
과 each
의 차이점은 무엇입니까?D3 javascript foreach와 각각의 차이점
답변
먼저 .forEach()
은 d3의 일부가 아니며 javascript 배열의 기본 함수입니다. 따라서
["a", "b", "c"].forEach(function(d, i) { console.log(d + " " + i); });
// Outputs:
a 0
b 1
c 2
d3이 페이지에로드되지 않은 경우에도 작동합니다.
다음으로 d3의 .each()
은 d3 선택에서 작동합니다 (d3.selectAll(...)
일 때 얻을 수있는 결과). 기술적으로, 을 d3 선택에 호출 할 수 있습니다. 장면 뒤에서 d3 선택이 추가 기능이있는 배열이므로 (그 중 하나는 .each()
입니다). 하지만 다음과 같은 이유로 인해서는 안됩니다.
이렇게하면 원하는 동작이 생성되지 않습니다. 원하는 동작을 생성하기 위해 을 d3 선택과 함께 사용하는 방법을 알고 있으면 d3의 내부 동작을 자세히 이해해야합니다. 그렇다면 API의 공개 된 부분만을 사용할 수 있다면 어째서 그렇게해야할까요?
는 당신이 D3 선택에
.each(function(d, i) { })
를 호출 할 때, 당신은 단지d
및i
이상을 얻을 : 함수는 호출 가도록 어디d
와 관련된 HTML DOM 요소에 그 기능 점수 내부this
키워드. 다시 말해서 내부의console.log(this)
은<div class="foo"></div>
또는 그 어떤 html 요소라도 기록 할 것입니다. CSS 속성, 내용 등을 변경하려면이this
객체에서 함수를 호출 할 수 있기 때문에 유용합니다. 일반적으로 d3을 사용하여d3.select(this).style('color', '#c33');
처럼 이러한 속성을 설정합니다.d
,this
및i
:
주요 테이크 아웃은 당신이 필요로하는 3 가지에 액세스 할 수 .each()
를 사용한다는 것입니다. .forEach()
을 사용하면 처음부터 예제와 같이 배열에 2 가지 (d
및 i
) 만 표시되며 HTML 요소를이 두 가지와 연관 시키려면 많은 작업을해야합니다. 그리고 다른 것들 중에서도 d3이 어떻게 유용할까요?
- 1. d3, javascript and canvasing
- 2. 클릭시 d3 javascript 대체 색상
- 3. d3 javascript click function call
- 4. javascript deflate와 java.util.zip.Deflater의 차이점
- 5. 두 JavaScript 패턴의 차이점
- 6. 의 Foreach와 $ _POST
- 7. foreach와 iterate의 차이점은
- 8. javascript 또는 d3.js로 도형 전환
- 9. Javascript D3 시각화 쿼트 트리 이해
- 10. javascript/d3 - 함수에 매개 변수 전달
- 11. 두 JavaScript 객체 유형의 차이점
- 12. Javascript regexp 리터럴과 생성자의 차이점
- 13. JavaScript 네임 스페이스 선언의 차이점
- 14. 함수와 새 함수의 JavaScript 차이점
- 15. d3.js
- 16. D3
- 17. D3
- 18. 펄의 foreach와 루핑 변수 변경
- 19. while (배열 커서 사용) foreach와
- 20. foreach와 operator overloading을 향상 시키십시오.
- 21. foreach와 위임 루프의 차이점은 무엇입니까?
- 22. MSsql 실행 foreach와 같은 쿼리
- 23. D3 요소를 선택하는 D3 Google지도
- 24. 게으른 로딩 Javascript 파일과 차이점 사이의 차이점</body>
- 25. 따옴표 붙은 JavaScript 객체 속성의 차이점
- 26. 쿼크 모드와 표준 모드의 차이점 JavaScript
- 27. JavaScript 패턴 - Facade와 Object 리터럴 패턴의 차이점
- 28. 성능과 관련하여 JavaScript 확장과 NPAPI 플러그인의 차이점
- 29. 두 개의 정규식 JavaScript 북마크 간의 차이점
- 30. d3.js d3.geo.path에 원을 추가하십시오.
매우 도움이되는 설명, 감사합니다! –
좋은 답변을 작성해 주셔서 감사 드리며 불필요한 부담을 덜어 주셔서 감사합니다. –
여기에주의해야합니다 : 'this'키워드에 대해 다른 범위 지정이 필요하지만 ' 당신의 호출 된 함수에서 데이터를 필요로하지 않는다면, selection [0] .forEach (...)는 selection.each보다 훨씬 편리하다. 'this'가 단순히 참조하는 것 외에 의미가있는 경우에는 부모 함수에서 'self = this'해결 방법이 필요하다. DOM 요소. – sdupton