1.2.3.22.函數程式設計(一)

  • 函數程式設計 (functional programming)

var arr1 = [1, 2, 3];
console.log(arr1);

var arr2 = [];
for(int i = 0; i < arr1.length; i++){
    arr2.push(arr1[i] * 2);
}

console.log(arr2);

//function programming
function mapForEach(arr, fn) {
    var arr2 = [];
    for(int i = 0; i < arr1.length; i++){
        arr2.push(
            fn([arr[i]]);
        );
    }
    return arr2;
}

var arr2 = mapForEach(arr, function(item){
    return item * 2;
});

//印出[2, 4, 6]
console.log(arr2);

var arr3 = mapForEach(arr, function(item){ 
    return item > 2; 
});

//印出[FALSE, FALSE, TRUE]
console.log(arr3);

var checkPastLimit = function(limiter, item){
    return item > limiter;
}

var arr4 = mapForEach(arr1, checkPastLimit.bind(this, 1));
console.log(arr4);


var checkPastLimitSimplified = function(limiter){
    return function(limiter, item){
        return item > limiter;
    }.bind(this, limiter)
}
var arr5 = mapForEach(arr1, checkPastLimitSimplified(2));
console.log(arr5);

Last updated