테스트 사이트 - 개발 중인 베타 버전입니다

for문을 higher order function으로 바꾸려는데 map이랑 filter사용에 어려움이있습니다

CP3 6년 전 조회 2,757

for문을 higher order function으로 바꾸려는데 map이랑 filter사용에 어려움이있습니다

</p>

<p>for ( ; i < len; i++ ) {</p>

<p>    selector += tokens[i].value;</p>

<p>}</p>

<p>

 

이 코드를 제가 바꾸기에

</p>

<p>let filter2309 = R.filter(</p>

<p>    i => {</p>

<p>        i<len</p>

<p>    },this</p>

<p>);</p>

<p>R.map(</p>

<p>    i => {</p>

<p>        selector += tokens[i].value;</p>

<p>    }, filter2309</p>

<p>);</p>

<p>

이렇게 바꾸었는데 처음 해보는거라 전혀 감이 안옵니다

우선 this가 정확히 무엇인지 모르겠습니다. 구글링해봤는데 caller의 stack안에 있는걸 우선적으로 참조? 한다는 느낌으로 알고 있는데 잘 모르겠습니다.

 

그리고 궁금한게 원래 for문에서 i를 1씩 증가시켜주고있는데 제 코드에선 i를 증가시키지 않고 있나요?

그렇다면 filter와 map을 이용해서 어떻게 higher-order function으로 i를 1씩 증가시키나요?

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

6년 전

위의 예제를 보면 map이 for 문 안에서 자동으로 배열을 뽑아냅니다.   즉 map이 자동으로 배열의 인덱스를 증가시켜 줍니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

유찬아빠
for ( ; i < len; i++ ) { // 여기가 이상하군요...
    selector += tokens[i].value;
}

 

보통

 

for (i=0 ; i < len; i++ ) { // 이런식으로 i 값을 선언하는데 말입니다.
    selector += tokens[i].value;
}
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

C
CP3
6년 전
아 물론 i는 위에서 이미 0으로 선언해줬습니다.
빼먹어서 죄송합니다

댓글을 작성하려면 로그인이 필요합니다.

답변에 대한 댓글 1개

C
CP3
6년 전
그래서 i를 증가시켜주는 부분이 밑에코드에선 어디에 해당하나요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인