함수형 자바스크립트 -4
2018-04-04
Section 3 - 컬렉션 중심 프로그래밍
- 수집하기 - map
- values
- pluck
- 거르기 - filter
- reject
- compact
- 찾아내기 - find
- some
- every
- 접기 - reduce
- min
- max
- group_by
- count_by
var users = [
{ id: 10, name: 'aa', age: 36 },
{ id: 20, name: 'bb', age: 32 },
{ id: 30, name: 'cc', age: 32 },
{ id: 40, name: 'dd', age: 27 },
{ id: 50, name: 'ee', age: 25 },
{ id: 60, name: 'ff', age: 26 },
{ id: 70, name: 'gg', age: 31 },
{ id: 80, name: 'hh', age: 23 },
{ id: 90, name: 'ii', age: 13 },
];
console.log(
_map(users, function(user) {
return user.name;
})
);
// function _values(data) {
// return _map(data, function(val) { return val; });
// }
function _values(data) {
return _map(data, _identity) ;
}
function _identity(val) {
return val;
}
var a = 10;
console.log(_identity(a));
console.log(user[0]); // { id: 10, name: 'aa', age: 36 }
console.log(_values(users[0])); // [10, 'aa', 36]
console.log(_keys(users[0])); // ['id', 'name', 'age']
console.log(
_filter(users, function(user) {
return user.age >30 ;
})
)
function _negate(func) {
return function (val) {
return !func(val);
}
}
// function _reject(data, predi) { // 조건을 제외한 값을 리턴
// return _filter(data, function(val) {
// return !predi(val);
// })
// }
function _reject(data, predi) { // 조건을 제외한 값을 리턴
return _filter(data, _negate(predi));
}
console.log(
_reject(users, function(user) {
return user.age > 30;
})
);
어렵다