8-8. 반복문을 파이프라인으로 바꾸기
적용 시점
컬렉션을 순회할 때 for문을 사용한 경우
절차
반복문에서 사용하는 컬렉션을 가리키는 변수를 하나 만든다.
반복문의 첫 줄부터 시작해서, 각각의 단위 행위를 적절한 컬렉션 파이프라인 연산으로 대체한다. 이때 컬렉션 파이프라인 연산은 1에서 만든 반복문 컬렉션 변수에서 시작하여, 이전 연산의 결과를 기초로 연쇄적으로 수행된다. 하나를 대체할 때마다 테스트한다.
반복문의 모든 동작을 대체했다면 반복문 자체를 지운다.
예시
❌Before
const acquireData = (datas) => {
const slicedDatas = [];
for (const item of datas) {
const [name, damage, job] = item.split(' ');
slicedDatas.push({ name, damage, job });
}
const seperateByJob = {};
for (const item of slicedDats) {
const { name, damage, job } = item;
if(!Object.keys(seperateByJob).includes(job)) {
seperateByJob[job] = 0
}
seperateByJob[job] += damage;
}
return seperate;
}
⭕After
const acquireData = (datas)
=> datas.map((data) => ({
name: data.name,
damage: data.damage,
job: data.job
})
).reduce((acc, cur) => {
if (!Object.keys(acc).includes(cur.job)) {
acc[cur.job] = 0;
}
return { ...acc, [cur.job]: acc[cur.job] + cur.damager }
}, {})
Last updated