현대 JS

4963 단어 javascript

하나의 간단한 예에서 개인 클래스 속성, 게터, 반복자



일련의 값을 지속적으로 반복해야 하는 경우, 즉 끝에 도달하면 첫 번째 값으로 돌아가야 하는 경우가 있습니까? 배열을 사용하고 인덱스를 증가시키고 끝에 도달하면 0으로 설정하거나 최신 js 기능을 배울 수 있는 기회를 가질 수 있습니다.

class Looper {
    #i // iterator
    #b // iterable e.g. array, Map, Set
    #v // value 
    constructor(iterable) {
        this.#b = iterable
        this.reset()
    }
    get value() {
        return this.#v.value
    }
    get next() {
        this.#v = this.#i.next()
        if (this.#v.done) {
            this.reset()
        }
        return this.value
    }
    reset() {
        this.#i = this.#b[Symbol.iterator]()
        this.#v = this.#i.next() 
        return this
    }
}


사용 예:

const loop = new Looper([1,2,3])
loop.value //1
loop.next //2
loop.next //3
loop.next //1
loop.next //2
loop.reset()
loop.value //1
loop.next //2
loop.reset().value //1
loop.next //2
loop.next //3


:)

좋은 웹페이지 즐겨찾기