Functional Approach

7829 단어 ES6JavaScriptES6

JavaScript를 사용 시 함수 자체가 객체로 취급되므로 함수를 인자로 넣는 등 함수 활용을 많이해서 함수형 언어로 보는 사람도 있다고 한다.

const people = [
  {
  age: 26,
  city: '서울',
  pet: ['cat', 'dog'],
  },
  {
  age: 40,
  city: '부산',
  },
  {
  age: 31,
  city: '인천',
  pet: ['cat', 'dog'],
  },
  {
  age: 32,
  city: '제주',
    pet: ['cat'],							
  }
]

A. 30대 미만이 한 명이라도 사는 모든 도시 구하기

// 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());

좋은 웹페이지 즐겨찾기