30세 이상인 users의 names를 수집한다.
var users = [
{ id: 1, name: 'ID', age: 36 },
{ id: 2, name: 'BJ', age: 32 },
{ id: 3, name: 'JM', age: 32 },
{ id: 4, name: 'PJ', age: 27 },
{ id: 5, name: 'HA', age: 25 },
{ id: 6, name: 'JE', age: 26 },
{ id: 7, name: 'JI', age: 31 },
{ id: 8, name: 'MP', age: 23 }
];
var names = [];
for (var i = 0; i < temp_users.length; i++) {
names.push(temp_users[i].name);
}
console.log(names);
function _map(list, mapper){
var new_list = [];
for (var i = 0; i < list.length; i++) {
new_list.push(mapper(list[i]));
}
return new_list;
}
users
를 넘기고, users
의 크기만큼 루프가 반복된다. new_list
에 push할 것인지를 mapper
에게 위임한다. 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; }));
console.log(
_map(
_filter(users, function(user) { return user.age < 30; }),
function(user) { return user.age; }));