FP-4-each

FP-3-map-filter에서 함수형 프밍을 통해 중복되는 곳을 제거했다. 이 때 중복되는 for문을 해결하지 못했다. each()문을 통해 해결해보자.

function _filter(users, predi) {
    var new_list = [];
    _each(list, function(val){
        if (perdi(val)) {
            new_list.push(val);
        }
    });
    // for (var i = 0; i < users.length; i++) { // 중복
    //     if (predi(users[i])) { // 중복
    //         new_list.push(users[i]);
    //     }
    // }
    return new_list;
}

function _map(list, mapper) {
    var new_list = [];
    _each(list, function(val) {
        new_list.push(mapper(val));
    })
    // for (var i = 0; i < list.length; i++) {
    //     new_list.push(mapper(list[i]));
    // }
    return new_list;
}

/*
    이 함수는 단순히 iter를 돌기.
    안에서 하는 일을 완전히 위임
*/

function _each(list, iter) {
    for (var i = 0; i < list.length; i++) {
        iter(list[i]);
    }
    return list;
}

Last updated

Was this helpful?