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
- addressing mode
- ALU
- L3 Router
- L2 switch
- float
- Public IP
- network
- Sector
- 공인 IP
- 사설 IP
- TCP
- cache
- 코드 컴플릿
- osi 7
- ack
- refactoring
- 리펙토링
- register
- 가독성
- interrupt
- Code complete
- CPU
- private ip
- floating point
- Clean code
- 클린 코드
- 명령어
- MMU
- page
- physical address
Archives
- Today
- Total
Software Lab
어떤 이터레이터를 사용해야 하나? 본문
const array = [1, 2, 3, 4]
이터레이터는 여러가지 종류가 있다. 모두 기능이 비슷해 보이지만, 분명한 차이가 있다.
그것들을 이해하고 목적에 맡게 사용해야 한다. 위의 array에 대해 각각의 이터레이터를 사용해 보자.
for(let i = 0; i < array.length; ++i){
console.log(array[i])
if(array[i] == 3)
break;
}
<Index read : O, Index write : O, break :O>
for(const i in array){
console.log(array[i])
if(array[i] == 3)
break
}
<Index read : O, Index write : X, break : O>
for(const v of array){
console.log(v)
if(v == 3)
break
}
<Index read : X, Index write : X, break : O>
array.some(v => {
console.log(v)
return (v == 3)
})
<Index read : X, Index write : X, break : O>
array.forEach(v => console.log(v))
<Index read : X, Index write : X, break : X>
- index read : index를 읽을 수 있는 기능이 있다. 예를 들어 "7의 배수의 index에 해당하는 값은 3을 곱해라"와 같은 처리가 필요하다면 해당 기능이 있는 Iterator를 사용해야 한다.
- index write : index를 수정할 수 있는 기능이 있다. 예를 들어 "index가 5라면 10으로 건너뛰겠다"와 같은 처리가 필요하다면 해당 기능이 있는 Iterator를 사용해야 한다.
- break : Iterator 중간에 빠져나갈 수 있다, 예를 들어 "값이 5이면 빠져나가라" 와 같은 처리가 필요하다면 해당 기능이 있는 Iterator를 사용해야 한다.
기능을 많이 제공하는 이터레이터일수록 가독성은 떨어진다. 기능을 많이 제공할수록 그것들의 사용 가능성을 염두에 두면서 코드를 해석해야 하기 때문이다. 목적하는 동작을 할 수 있다면, 가능한 적은 기능을 제공하는 이터레이터를 사용하여 가독성을 높인다.
'코드 리펙토링' 카테고리의 다른 글
토글 (0) | 2022.06.29 |
---|---|
삼항 연산자 (0) | 2022.06.29 |
필수 변수는 생성자 함수를 통하여 (0) | 2022.06.28 |
try 블록 범위 (0) | 2022.06.28 |
null 인자는 함수 외부에서 처리 (0) | 2022.06.24 |
Comments