* Return a shallow copy of the deque's contents as an array, in * front-to-back order. * * @example Converting to an array * ```ts * import { Deque } from "@std/data-structures/deque"; * import { assertEquals } from "@std/assert"; * * const deque = new Deque([1, 2, 3]); *
()
| 601 | * @returns An array containing the deque's elements in order. |
| 602 | */ |
| 603 | toArray(): T[] { |
| 604 | const buf = this.#buffer; |
| 605 | const head = this.#head; |
| 606 | const len = this.#length; |
| 607 | const cap = this.#mask + 1; |
| 608 | const result = new Array<T>(len); |
| 609 | const firstLen = Math.min(len, cap - head); |
| 610 | for (let i = 0; i < firstLen; i++) result[i] = buf[head + i] as T; |
| 611 | const rem = len - firstLen; |
| 612 | for (let i = 0; i < rem; i++) result[firstLen + i] = buf[i] as T; |
| 613 | return result; |
| 614 | } |
| 615 | |
| 616 | /** |
| 617 | * Create a new deque from an array-like, iterable, or existing deque. |
no test coverage detected