반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- formik react-query submitting not working
- cypressBDD
- Git commit 합치기
- git squash
- 시스템설계방법
- git commit merge
- file not found Error
- 가상면접2장
- 디자인패턴
- 테스트코드책
- 리팩토링2판4장
- 전략패턴
- 가상면접으로대규모시스템
- gitsquash
- formik submitting not working
- 시스템설계면접
- 가상면접3장
- FirebaseAnalytics
- 시스템설계면접팁
- awss3
- cypress React
- 시스템설계면접예시
- 헤드퍼스트전략패턴
- git commit 협업
- 시스템설계
- react
- react-ga
- 리액트구글애널리틱스
- 리팩터링2판테스트
- s3이미지다운로드됨
Archives
- Today
- Total
mingg IT
[리팩토링] 반복문을 파이프라인으로 바꾸기 본문
깔끔하게 코드 짜는 꿀팁으로 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;
}
'FrontEnd' 카테고리의 다른 글
[React] CRA(create-react-app) 사용하지 않고 초기 세팅 해보기 (0) | 2022.05.08 |
---|---|
[React] Typeit 사용하기 (React v 17) (0) | 2022.04.25 |
[HTML] Shadow DOM (0) | 2022.04.09 |
[Next.js] Next.js 에서 .module.scss 사용하기 (0) | 2022.03.08 |
[Typescript] 구조적 타이핑 예시 (0) | 2022.03.02 |
Comments