Collection iteration more similar to Map.
This commit is contained in:
parent
7024b5ec1b
commit
160522c520
@ -163,6 +163,22 @@ export default class Collection extends EventEmitter {
|
||||
* [Symbol.iterator] () {
|
||||
const {_items: items} = this
|
||||
|
||||
for (let key in items) {
|
||||
yield [key, items[key]]
|
||||
}
|
||||
}
|
||||
|
||||
* keys () {
|
||||
const {_items: items} = this
|
||||
|
||||
for (let key in items) {
|
||||
yield key
|
||||
}
|
||||
}
|
||||
|
||||
* values () {
|
||||
const {_items: items} = this
|
||||
|
||||
for (let key in items) {
|
||||
yield items[key]
|
||||
}
|
||||
|
@ -39,8 +39,26 @@ describe('Collection', function () {
|
||||
it('is iterable', function () {
|
||||
const iterator = this.col[Symbol.iterator]()
|
||||
|
||||
expect(iterator.next()).to.eql({done: false, value: ['bar', 0]})
|
||||
expect(iterator.next()).to.eql({done: true, value: undefined})
|
||||
})
|
||||
|
||||
describe('#keys()', function () {
|
||||
it('returns an iterator over the keys', function () {
|
||||
const iterator = this.col.keys()
|
||||
|
||||
expect(iterator.next()).to.eql({done: false, value: 'bar'})
|
||||
expect(iterator.next()).to.eql({done: true, value: undefined})
|
||||
})
|
||||
})
|
||||
|
||||
describe('#values()', function () {
|
||||
it('returns an iterator over the values', function () {
|
||||
const iterator = this.col.values()
|
||||
|
||||
expect(iterator.next()).to.eql({done: false, value: 0})
|
||||
expect(iterator.next()).to.eql({done: true, value: undefined})
|
||||
})
|
||||
})
|
||||
|
||||
describe('#add()', function () {
|
||||
|
Loading…
Reference in New Issue
Block a user