ABOUT ME

포소니는 나의 하루이자 누군가의 공감입니다. 조용히 머물러도 좋고, 가볍게 이야기를 남겨도 좋아요. 당신의 일상도, 이곳에 스며들길 바랍니다.

Today
Yesterday
Total
  • call back and delegating exam
    카테고리 없음 2016. 4. 7. 15:00
    반응형

    // reference underscore.js

    //http://underscorejs.org


    underscorejs 에 있는 function 들과 비슷한 기능들을 구현 하도록 한다.

    목적은 call back 과 delegate 의 사용 방법을 익히는 것.



    var _ = {

       // map 01

       map: function(arr,callback){

      var new_arr=[];

      for(var i=0;i<arr.length;i++){

      new_arr.push(callback(arr[i]));

      }

      return new_arr;

       },

    /*

       // map 02

       map:function(list,callback){

      var new_arr=[];

      return new_list;

       }

       // map 03

       map:function(list,callback){

      var new_arr=[];

      return new_list;

       }   

    */

       reduce: function(arr,callback,context){

        var sum=0;

        var memo=0;

        for(var i=context;i<arr.length;i++){

      sum += callback(memo,arr[i]);

        }

        return sum;

       },

       find: function(arr,callback){

           var find;

           for(var i=0;i<arr.length;i++){

          if(callback(arr[i])){

          return find;

          }

           }

       },

       filter: function(arr,callback){

      var new_arr=[];

        for(var i=0;i<arr.length;i++){

       if(callback(arr[i])){

    new_arr.push(arr[i]);    

       }    

        }

        return new_arr;  

       },

       reject: function(arr,callback){

        var new_arr=[];

        for(var i=0;i<arr.length;i++){

       if(!callback(arr[i])){

    new_arr.push(arr[i]);    

       }    

        }

        return new_arr; 

       }

     }

    // filter

    var filter_exam = _.filter([1, 2, 3, 4, 5, 6],function(num){

       return num % 2==0;

    });

    console.log('filter: '+filter_exam);

    //find

    var find_exam = _.filter([1, 2, 3, 4, 5, 6],function(num){

       return num % 2==0;

    });

    console.log('find: '+find_exam);

    //map_01

    var map_exam_01 = _.map([1, 2, 3],function(num){

       return num * 3;

    });

    console.log('map_01: '+map_exam_01);

    /*

    //map_02

    var map_exam_02 = _.map({one: 1, two: 2, three: 3}, function(num, key){

       return num * 3;

    });

    console.log('map_02: '+map_exam_02);

    //map_03

    var map_exam_03 = _.map([[1, 2], [3, 4]], _.first);

    console.log('map_02: '+map_exam_02);

    */

    //reduce

    var reduce_exam = _.reduce([1, 2, 3], function(memo, num){ 

    return memo + num; 

    }, 0);

    console.log('reduce: '+reduce_exam)

    //reject

    var reject_exam=_.reject([1, 2, 3, 4, 5, 6], function(num){ 

    return num % 2 == 0; 

    });

    console.log('reject: '+reject_exam);






    반응형
Designed by Tistory.