for문을 higher order function으로 바꾸려는데 map이랑 filter사용에 어려움이있습니다
본문
for문을 higher order function으로 바꾸려는데 map이랑 filter사용에 어려움이있습니다
for ( ; i < len; i++ ) {
selector += tokens[i].value;
}
이 코드를 제가 바꾸기에
let filter2309 = R.filter(
i => {
i<len
},this
);
R.map(
i => {
selector += tokens[i].value;
}, filter2309
);
이렇게 바꾸었는데 처음 해보는거라 전혀 감이 안옵니다
우선 this가 정확히 무엇인지 모르겠습니다. 구글링해봤는데 caller의 stack안에 있는걸 우선적으로 참조? 한다는 느낌으로 알고 있는데 잘 모르겠습니다.
그리고 궁금한게 원래 for문에서 i를 1씩 증가시켜주고있는데 제 코드에선 i를 증가시키지 않고 있나요?
그렇다면 filter와 map을 이용해서 어떻게 higher-order function으로 i를 1씩 증가시키나요?
!-->!-->답변 3
map에 대한 내용 아래를 참조하시고
this도
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/this
그런데 위의 예제에서 this는 어떤 것인지는 전체 예제을 봐야 될것 같습니다.
for ( ; i < len; i++ ) { // 여기가 이상하군요... selector += tokens[i].value; }
보통
for (i=0 ; i < len; i++ ) { // 이런식으로 i 값을 선언하는데 말입니다. selector += tokens[i].value; }
위의 예제를 보면 map이 for 문 안에서 자동으로 배열을 뽑아냅니다. 즉 map이 자동으로 배열의 인덱스를 증가시켜 줍니다.
답변을 작성하시기 전에 로그인 해주세요.