JavaScript를 사용 시 함수 자체가 객체로 취급되므로 함수를 인자로 넣는 등 함수 활용을 많이해서 함수형 언어로 보는 사람도 있다고 한다.
const people = [
{
age: 26,
city: '서울',
pet: ['cat', 'dog'],
},
{
age: 40,
city: '부산',
},
{
age: 31,
city: '인천',
pet: ['cat', 'dog'],
},
{
age: 32,
city: '제주',
pet: ['cat'],
}
]
// For Loop 방식
function solveA() {
const cities = [];
for (const person of people) {
if(person.age < 30) {
// 중복되는 도시를 넣지 않기 위해
if(!cities.find((city) => person.city === city)) {
cities.push(person.city);
}
}
}
return cities;
};
// 함수형 방식
function solveAModern() {
// allCities는 모든 도시들의 이름을 가진 배열
const allCities = people.filter(person => pereson.age < 30).map((person) => person.city);
// 도시 이름 중복을 걸러내기 위해서
// 중복이 허용되지 않는 집합 set을 만들고
const set = new Set(allCities);
// 어레이로 변환 후 리턴
return Array.from(set);
}
console.log('solveA', solveA());
console.log('solveAModern', solveAModern());