-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
grep function 만들기 오류
19.05.18 23:05 작성 조회수 197
0
제가 jquery에 grep함수를 최대한 함수형 프로그래밍스럽게 바꾸고 있습니다.
제가 지금까지 시도한 결과는 아래와 같은데 이상하게
```
my_grep([0,1,2,3], function(k){return k<3}, true)
```
이렇게 실행해보면
```
evalmachine.<anonymous>:16 matches.push( elems[ p ] ); ^ TypeError: matches.push is not a function
```
이런 오류를 뱉어내는데, 이유를 도무지 모르겠습니다. 제 코드는 아래와 같습니다
```
function my_grep(elems, callback, invert) { var callbackInverse, matches = [], i = 0, length = elems.length, callbackExpect = !invert; let fun = matches => { let r = R.range(0,length); let modify = R.curry( p=>{ let callbackInverse = !callback( elems[ p ], p ); if ( callbackInverse !== callbackExpect ) { matches.push( elems[ p ] ); } } ); R.map(modify,r); return matches; }; fun(length); }
```
원래 동작의 의도는 invert가 true면 callback인자의 조건이 false인 배열을 elems중에서 걸러내서 리턴하는 것 같습니다.
답변을 작성해보세요.
0
유인동
지식공유자2019.05.20
제가 grep 함수를 잘 모르는데, 잠시 보니 filter와 reject을 하나의 함수로 구현한 함수인거 같은데요.
그게 맞다면 아래 코드를 참고해주세요.
https://github.com/marpple/FxJS/blob/master/filter.js
https://github.com/marpple/FxJS/blob/master/reject.js
답변 1