const mp = new Map()
mp.set('a' , 1)
mp.set('b' , 2)
mp.set('c' , 3)
const st = new Set()
st.add(1)
st.add(2)
st.add(3)
for(let a of mp) console.log(a)
for(let b of st) console.log(b)
실무에서 어떻게 활용할 수 있을까?
이터레이터 패턴은 자바스크립트에서 다양한 곳에서 활용될 수 있습니다. 예를 들면 다음과 같습니다.
따라서 이터레이터 패턴은 자바스크립트에서 다양한 상황에서 활용될 수 있으며, 코드의 가독성과 유지 보수성을 높여줄 수 있습니다.
그냥 반복문을 활용하면 이터레이터 패턴이라고 볼 수 있을 것 같은데?
반복문과 이터레이터 패턴은 유사하지만, 미묘한 차이점이 있습니다.
일반적인 for
반복문을 사용하면 배열의 인덱스를 직접 사용하여 배열의 요소에 접근합니다. 이 경우 배열의 내부 구조를 직접 노출하고, 배열의 요소를 순서대로 접근하고 있음을 명시하지 않습니다.
하지만 이터레이터 패턴을 사용하면 배열의 내부 구조를 노출하지 않고, 배열의 요소를 순서대로 접근할 수 있습니다. 이터레이터 패턴은 객체의 내부에서 next()
메소드를 호출하여, 각 요소를 순서대로 반환하는 방식으로 동작합니다. 이렇게 함으로써, 객체의 내부 구조를 노출하지 않고, 요소에 접근할 수 있으며, 이는 코드의 가독성과 유지 보수성을 높여줍니다.
또한, 이터레이터 패턴은 객체를 반복하는 방법을 표준화하고, ES6에서 도입된 for...of
루프를 사용하여 반복할 수 있습니다. 이는 반복문과 달리, 객체의 내부 구조를 명시하지 않고, 요소에 순서대로 접근할 수 있으며, 이는 코드의 가독성과 유지 보수성을 높여줍니다.
따라서, 반복문과 이터레이터 패턴은 유사하지만, 이터레이터 패턴은 객체의 내부 구조를 노출하지 않고, 요소에 접근하는 것을 명시적으로 지원하는 패턴입니다.
chat을 이용해 확인해본 결과 for… of를 이용해 배열의 내부구조를 노출하지 않고 배열의 요소에 접근하는 장점을 가지는 패턴이라고 볼 수 있겠음.