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; }
    )
)

'프로그래밍 > JavaScript' 카테고리의 다른 글

가비지 컬렉션  (0) 2021.01.24
오류에 대해서  (0) 2019.06.07
예외처리  (0) 2019.06.03
인라인 이벤트모델, 표준 이벤트 모델  (0) 2019.06.03
고전 이벤트 모델  (0) 2019.06.03