mingg IT

[리팩토링] 반복문을 파이프라인으로 바꾸기 본문

FrontEnd

[리팩토링] 반복문을 파이프라인으로 바꾸기

mingg123 2022. 4. 10. 21:22

깔끔하게 코드 짜는 꿀팁으로 filter, map을 사용하는 방법이 있다.

for문을 돌리는것보다 훨신 직관적으로 확인할 수 있다.

좋은 예시가 있어서 포스팅하려고 한다.

 

리팩토링 전 함수를 보고 어떻게 바꿔보면 좋을지 혼자 고민하고 결과를 확인해보면 좋을듯.

해당 방법에 익숙해 져야함. 

//리팩토링 전
function acquireData(input) {
  const lines = input.split('\n');
  let firstLine = true;
  const result = [];
  for (const line of lines) {
    if (firstLine) {
      firstLine = false;
      continue;
    }
    if (line.trim() === '') continue;
    const record = line.split(',');
    if (record[1].trim() === 'India') {
      result.push({ city: record[0].trim(), phone: record[2].trim() });
    }
  }
  return result;
}

//리팩토링 후
function acquireData(input) {
  const lines = input.split('\n');
  const result = lines
    .slice(1)
    .filter((line) => line.trim() !== '')
    .map((line) => line.split(','))
    .filter((record) => record[1].trim() === 'India')
    .map((record) => ({ ity: record[0].trim(), phone: record[2].trim() }));
  return result;
}
Comments