diff options
Diffstat (limited to 'lib/internal/DoublyLinkedList.js')
-rw-r--r-- | lib/internal/DoublyLinkedList.js | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/internal/DoublyLinkedList.js b/lib/internal/DoublyLinkedList.js index 4444bcb..39f88ac 100644 --- a/lib/internal/DoublyLinkedList.js +++ b/lib/internal/DoublyLinkedList.js @@ -60,14 +60,16 @@ export default class DLL { return this.tail && this.removeLink(this.tail); } - toArray () { - var arr = Array(this.length); - var curr = this.head; - for(var idx = 0; idx < this.length; idx++) { - arr[idx] = curr.data; - curr = curr.next; + toArray() { + return [...this] + } + + *[Symbol.iterator] () { + var cur = this.head + while (cur) { + yield cur.data + cur = cur.next } - return arr; } remove (testFn) { |