이 for / in 루프는 정확히 어떻게 작동합니까?

델츠

저는 초급 연습을하고 있으며 숫자 배열의 평균 / 중간 / 모드 / 범위를 찾습니다. 나는 지금 모드에 있으며 이것을 발견 했습니다 .

var store = ['1','2','2','3','4'];
var frequency = {};  // array of frequency.
var max = 0;  // holds the max frequency.
var result;   // holds the max frequency element.
for(var v in store) {
        frequency[store[v]]=(frequency[store[v]] || 0)+1; // increment frequency.
        if(frequency[store[v]] > max) { // is this frequency > max so far ?
                max = frequency[store[v]];  // update max.
                result = store[v];          // update result.
        }
}

작동하지만 이해가되지 않습니다.

  • 무엇을 않는 || 0첫 번째 줄에 무엇입니까?
  • 키 이름을 변경할 수없는 이유는 무엇입니까?

frequency["key"+store[v]]=(frequency[store[v]] || 0)+1;{key1: 1, key2: 1, key3: 1, key4: 1}not을 반환 {1: 1, 2: 2, 3: 1, 4: 1}하므로 키가 중요한 역할을합니다.

  • if 문이 키와 값을 모두 테스트합니까?

의 인스턴스를 frequency[store[v]];변수 ( var freqTest = frequency[store[v]];, 루프 내부 또는 외부에서 생성됨)로 바꾸면 무언가가 깨집니다.

모든 것이 정말로 내 머리 위로 가고 있습니다.

조쉬 26757

전체 논리의 핵심은이 라인을 이해하는 것입니다.

frequency[store[v]]=(frequency[store[v]] || 0)+1;

왼쪽은 일부 숫자의지도로 사용되고 있습니다. v가 3이면 store [3]는 2를 반환하므로 frequency [2]에 액세스합니다.

이제 동일한 반복에 대해 오른쪽을 고려하십시오. 우리는 이미 알고 있습니다

frequency[store[3]] 

결심하다

frequency[2]

그러나 이것은 무엇을 반환할까요? frequency [2]가 반복 2에서도 설정되었으므로 반복 2의 숫자에 액세스하게됩니다. 이제 반복 2에서 파생 된 값을 살펴 보겠습니다.

frequency[store[2]] = (frequency[store[2]] || 0)+1
frequency[2] = (frequency[2] || 0)+1
frequency[2] = (null || 0)+1
frequency[2] = 1

Ahhh ... 그래서 반복 3의 값은 실제로

frequency[2] = (frequency[2] || 0) + 1
frequency[2] = (1 || 0) + 1
frequency[2] = (1) + 1
frequency[2] = 2

보시다시피 루프는 frequency [n]을 맵으로 사용하며 발견 될 때마다 값을 증가시킵니다. 그러면 값이 더 높으면 max에 저장됩니다. 이것은 목록을 한 번만 반복하면서 가장 높은 반복 값을 찾는 매우 현명한 방법입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

AngularJS 다이제스트 루프는 정확히 어떻게 작동합니까?

분류에서Dev

도커는 정확히 어떻게 작동합니까? (이론)

분류에서Dev

마운트 드라이브는 정확히 어떻게 작동합니까?

분류에서Dev

프록시는 정확히 어떻게 작동합니까?

분류에서Dev

Linux 시스템에서 프로그램 또는 bash 쉘 명령이 정확히 어떻게 작동합니까?

분류에서Dev

bash 루프는 어떻게 정확하게 작동합니까?

분류에서Dev

이 JPA 매핑은 정확히 어떻게 작동합니까?

분류에서Dev

이 기능은 정확히 어떻게 작동합니까?

분류에서Dev

이 특정 이중 for 루프는 파이썬에서 어떻게 작동합니까? 이중 for 루프 설명

분류에서Dev

정확히 파이프 라이닝은 2> & 1에서 어떻게 작동합니까?

분류에서Dev

PhantomData는 Rust에서 정확히 어떻게 작동합니까?

분류에서Dev

AudioRecord 클래스는 정확히 어떻게 작동합니까?

분류에서Dev

DNS는 정확히 어떻게 작동합니까?

분류에서Dev

DNS는 정확히 어떻게 작동합니까?

분류에서Dev

NOT EXISTS는 SQL에서 정확히 어떻게 작동합니까?

분류에서Dev

sockaddr_storage는 정확히 어떻게 작동합니까?

분류에서Dev

새 객체를 생성하는이 REST 메서드는 정확히 어떻게 작동합니까?

분류에서Dev

Spring에서 POST 요청을 처리하는이 REST 메서드는 정확히 어떻게 작동합니까?

분류에서Dev

단축키 연산자는 파이썬에서 정확히 어떻게 작동합니까?

분류에서Dev

다른 속성 파일을 "포함"하는이 속성 파일은 정확히 어떻게 작동합니까?

분류에서Dev

C에서 float 또는 double 유형이 정확히 어떻게 작동합니까?

분류에서Dev

이 간단한 PrimeNG Angular 2 예제는 정확히 어떻게 작동합니까?

분류에서Dev

이 루프는 어떻게 작동합니까?

분류에서Dev

이 for 루프는 어떻게 작동합니까?

분류에서Dev

전원이 꺼지면 ROM이 정확히 어떻게 작동합니까?

분류에서Dev

이 이름 지정 변수는 어떻게 작동합니까?

분류에서Dev

BitLocker는 내 데이터를 정확히 어떻게 보호합니까?

분류에서Dev

입력 Streams.read ()는 어떻게 정확히 작동합니까?

분류에서Dev

constexpr double Point :: * coords [3]는 정확히 어떻게 작동합니까?

Related 관련 기사

  1. 1

    AngularJS 다이제스트 루프는 정확히 어떻게 작동합니까?

  2. 2

    도커는 정확히 어떻게 작동합니까? (이론)

  3. 3

    마운트 드라이브는 정확히 어떻게 작동합니까?

  4. 4

    프록시는 정확히 어떻게 작동합니까?

  5. 5

    Linux 시스템에서 프로그램 또는 bash 쉘 명령이 정확히 어떻게 작동합니까?

  6. 6

    bash 루프는 어떻게 정확하게 작동합니까?

  7. 7

    이 JPA 매핑은 정확히 어떻게 작동합니까?

  8. 8

    이 기능은 정확히 어떻게 작동합니까?

  9. 9

    이 특정 이중 for 루프는 파이썬에서 어떻게 작동합니까? 이중 for 루프 설명

  10. 10

    정확히 파이프 라이닝은 2> & 1에서 어떻게 작동합니까?

  11. 11

    PhantomData는 Rust에서 정확히 어떻게 작동합니까?

  12. 12

    AudioRecord 클래스는 정확히 어떻게 작동합니까?

  13. 13

    DNS는 정확히 어떻게 작동합니까?

  14. 14

    DNS는 정확히 어떻게 작동합니까?

  15. 15

    NOT EXISTS는 SQL에서 정확히 어떻게 작동합니까?

  16. 16

    sockaddr_storage는 정확히 어떻게 작동합니까?

  17. 17

    새 객체를 생성하는이 REST 메서드는 정확히 어떻게 작동합니까?

  18. 18

    Spring에서 POST 요청을 처리하는이 REST 메서드는 정확히 어떻게 작동합니까?

  19. 19

    단축키 연산자는 파이썬에서 정확히 어떻게 작동합니까?

  20. 20

    다른 속성 파일을 "포함"하는이 속성 파일은 정확히 어떻게 작동합니까?

  21. 21

    C에서 float 또는 double 유형이 정확히 어떻게 작동합니까?

  22. 22

    이 간단한 PrimeNG Angular 2 예제는 정확히 어떻게 작동합니까?

  23. 23

    이 루프는 어떻게 작동합니까?

  24. 24

    이 for 루프는 어떻게 작동합니까?

  25. 25

    전원이 꺼지면 ROM이 정확히 어떻게 작동합니까?

  26. 26

    이 이름 지정 변수는 어떻게 작동합니까?

  27. 27

    BitLocker는 내 데이터를 정확히 어떻게 보호합니까?

  28. 28

    입력 Streams.read ()는 어떻게 정확히 작동합니까?

  29. 29

    constexpr double Point :: * coords [3]는 정확히 어떻게 작동합니까?

뜨겁다태그

보관