함수형 프로그래밍

준호·2020년 12월 6일
0
var users = [
    { id: 1, name: 'name1', age: 16 },
    { id: 2, name: 'name2', age: 36 },
    { id: 5, name: 'name3', age: 46 },
    { id: 4, name: 'name4', age: 56 },
    { id: 9, name: 'name5', age: 66 },
    { id: 7, name: 'name6', age: 76 },
]


function _filter(users, predi) {
    var new_users = []
    for (var i = 0; i < users.length; i++) {
        if (predi(users[i])) {
            new_users.push(users[i]);
        }
    }
    return new_users;
}

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

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

var over_30 = _filter(users, function (user) {
    return user.age >= 30;
});
console.log(over_30);

var names = _map(over_30, function (user) {
    return user.name;
})
console.log(names);

var under_30 = _filter(users, function (user) {
    return user.age < 30;
});
console.log(under_30);

var ages = _map(under_30, function (user) {
    return user.age;
})
console.log(ages)

console.log(
    _map(
        _filter(users, function (user) {
            return user.age >= 30;
        }), function (user) { return user.name; }
    )
)
profile
빠르게 발전중인 프론트엔드 개발자

0개의 댓글