예: 명령적 vs. 기능적

최근에 함수형 프로그래밍에 대한 질문을 많이 받았습니다.

여기 다양한 접근 방식에 대한 작은 예가 있습니다.

// list of my friends
const friends = [
  { name: "Erwin", drinks: ["beer", "coffee"] },
  { name: "Peter", drinks: ["beer"] },
  { name: "Heidi", drinks: ["water"] }
];

// what do we want to search?
const itemToSearch = "beer";

/***********************************
 * imperative approach
 */

// a place to store the results
let resultImperative = [];

// go over every friend
for (friend of friends) {
  // check if the person drinks this
  if (friend.drinks.includes(itemToSearch)) {
    // add it to the results
    resultImperative.push(friend.name);
  }
}
console.log(resultImperative); // [ 'Erwin', 'Peter' ]

/***********************************
 * functional approach
 */
const resultFunctional = friends
  // check if the person drinks this
  .filter(friend => friend.drinks.includes(itemToSearch))
  // only give me the name
  .map(friend => friend.name);
console.log(resultFunctional); // [ 'Erwin', 'Peter' ]


나는 두 번째 접근 방식을 더 좋아합니다.
  • 덜 복잡함,
  • 가독성 증가
  • 일정한 추상화 수준

  • 그것에 대해 어떻게 생각하세요?

    좋은 웹페이지 즐겨찾기