Iterator

Instance of

Class

Inherits from

Object

Description

Iterator is an object that can iterate over a sequence. To satisfy iterator requirements object should implement next method that either returns next element in the sequence or Iterator.end. Object does not need to extend Iterator to be an iterator. To satisfy iterable requirements object should implement iterator method that returns an iterator.

Example

for (let i in [1, 2, 3, 4])
    console.write(i)
console.newLine()

for (let i in "abcd")
    console.write(i)
console.newLine()

let it <- [1, 2, 3, 4].iterator()
while (!(let i <- it.next()) is Iterator.end)
    console.write(i)
console.newLine()

class MyRangeIterator extends Iterator {
    constructor: function(i, end) {
        this.i = i - 1
        this.end = end
    },
    next: function() {
        return this.i++ < this.end ? this.i : Iterator.end
    }
}

class MyRange {
    constructor: function(start, end) {
        this.start = start
        this.end = end
    },
    iterator: function() {
        return MyRangeIterator(this.start, this.end)
    }
}

for (let i in MyRange(11, 15))
    console.write(i, " ")

Expected output

1234
abcd
1234
11 12 13 14 

Members

Inherited members

Properties

  • classPrototype
  • end