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;
}