jquery 함수들을 완전한 함수형 프로그래밍으로 바꾸려고 합니다.

미해결질문
이이도경 프로필

jquery 함수들을 완전한 함수형 프로그래밍으로 바꾸려고 합니다.

for loop같은 것들도 모두 함수로 고쳐보고 싶은데 제가 바꾸려는 것이   

 

  each: function( obj, callback ) {

            var length, i = 0;

 

            if ( isArrayLike( obj ) ) {

                length = obj.length;

                for ( ; i < length; i++ ) {

                    if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {

                        break;

                    }

                }

            } else {

                for ( i in obj ) {

                    if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {

                        break;

                    }

                }

            }

 

            return obj;

        },

이 함수인데 제가 생각하기엔 

 

  each: function( obj, callback ){

length = obj.length;

let fisrt_if = R.curry( 

    i=> {

        R.range(0,length).some(function(i){

                    if ( callback.call( obj[ i ], i, obj[ i ] ) === false )

                        return i;

                    }

                );

    });

 

let first_else = R.curry(

    i=>{

          R.keys(obj).some(function(i){

                    if ( callback.call( obj[ i ], i, obj[ i ] ) === false )

                        return i;

                        }

                );

    }

);

 

let arraylike = obj =>{

    if ( isArrayLike( obj ) ) 

        return true;

    else

        return false;

}

let main = 

    R.ifElse(

    x=> arrayLike(obj),

        first_if,

        first_else

    )

}

 

밑에 함수가 그럴싸해보이는데 어디가 틀린건지 알 수 있을까요 ?ㅠㅠ

유인동 프로필
유인동 6달 전

제가 최근에 구현한 each 함수는 아래와 같습니다.

https://github.com/marpple/FxJS/blob/master/each.js

ES6이 되면서 obj, arr를 모두 지원하는 each 보다는

'이터러블'을 지원하는 each가 더 좋다고 생각합니다.

감사합니다.

이이도경 프로필
이이도경 6달 전

최대한 남이 만든게 아닌 제가 직접 만들어보고 싶은데 제 코드는 너무 문제가 많은가요? ㅠㅠ

유인동 프로필
유인동 6달 전

아 문제가 많다기보다요.

조금 더 map, filter, reduce의 각각을 어느상황에 쓰는 것이 좋은지에 대한 연습이 필요하실 것 같습니다.

그래도 만드는 시도를 하시다보면 분명히 보이실 거라고 생각합니다.

감사합니다.

지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스