인프런 커뮤니티 질문&답변
다용성이 높은 L.flatMap
작성
·
333
0
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
L.flatMap은 주어진 이터러블에서 각 요소에 대해 콜백 함수를 실행하고, 각 반환 값을 평탄화(flatten)하여 새로운 배열을 생성하는 메소드입니다.
여러 다양한 형태의 이터러블을 다룰 수 있는 다용성을 갖춘 L.flatMap을 구현하기 위해서는 다음과 같은 방법을 사용할 수 있습니다.
- 주어진 이터러블을 순회하면서 각 요소에 대해 검사합니다.
 - 만약 요소가 배열이 아니라면, 해당 요소를 단일 요소로 갖는 배열로 변환합니다.
 - 배열인 경우, 해당 요소에 대해 L.map을 사용하여 콜백 함수를 실행하고 새로운 배열을 반환합니다.
 - 이렇게 반환된 배열을 단일 배열로 평탄화시킵니다.
 - 최종적으로 생성된 배열을 반환합니다.
 
즉, 다음과 같이 구현할 수 있습니다.
function L.flatMap(iterable, mapper) {
  const result = [];
  
  for (const item of iterable) {
    if (Array.isArray(item)) {
      result.push(...mapper(item));
    } else {
      result.push(mapper([item]));
    }
  }
  
  return result;
}
위의 코드에서 iterable은 주어진 배열 it이고, mapper는 각 요소에 대해 실행할 콜백 함수입니다. 이를 참고하여 코드를 적절하게 수정하시면, 다양한 형태의 이터러블에 대해 사용할 수 있는 L.flatMap을 구현하실 수 있을 것입니다.
더 자세한 내용은 인프런 강의 내용을 참고해주세요.
진행하시는 프로젝트나 코드에 맞게 필요한 부분들을 추가하시면 다용성을 높일 수 있을 거예요. 원하시는 답변이 아니거나 추가적인 질문이 있으시면 언제든지 물어보세요.
앞으로의 학습 과정에서도 좋은 성과 있으시길 바랄게요. 좋은 하루 되세요!





