-
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);
반응형