Iterator
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
==
addProperty
classPrototype
getId
getOwnPropertyNames
hasOwnProperty
readOperator
removeProperty
toArray
toBoolean
toJson
toNumber
toString
Properties
classPrototype
end