2021-06-04
2977
#vanilla javascript
Paul Ryan
9379
Jun 4, 2021 ⋅ 10 min read

Know your JavaScript data structures

Paul Ryan Developer hailing from Ireland. Loves all things JS and also starting to fall in love with SVGs!

Recent posts:

Typescript or Zod for Validation?

TypeScript vs Zod: Clearing up validation confusion

Learn when to use TypeScript, Zod, or both for data validation. Avoid redundant checks and build safer, type-sound applications.

Alexander Godwin
Oct 6, 2025 ⋅ 3 min read
Wasm 3 Before GTA 6 LogRocket Article

We got Wasm 3.0 before GTA 6: Meet the web’s new engine

Discover how WebAssembly 3.0’s garbage collector, exception handling, and Memory64 transform Wasm into a true mainstream web platform.

Ikeh Akinyemi
Oct 3, 2025 ⋅ 2 min read

How to use AI to build accurate ShadCN components

AI agents often break shadcn/ui components with outdated docs or made-up props. The MCP server fixes this by giving live access to registries. In this tutorial, we’ll set it up and build a Kanban board to show it in action.

Chizaram Ken
Oct 3, 2025 ⋅ 5 min read
Rust Project for Web Services LogRocket Article

The best way to structure Rust web services

Learn how to structure Rust web services with clean architecture, Cargo workspaces, and modular crates for scalable, maintainable backends.

Jude Miracle
Oct 2, 2025 ⋅ 2 min read
View all posts

7 Replies to "Know your JavaScript data structures"

  1. Stack implementation has few errors.
    For example try this code:
    var stack = new Stack();
    stack.push(1);
    stack.peek(); // –> 1
    stack.peek(); // –> undefined, because this._length became -1
    Same problem with pop() method – you decrement this._length three times

  2. `–this.length` is used in error 3 times – decrementing the values instead of retrieving the position. It’s a pretty fundamental error for a data structures tutorial

  3. Hi, in Linked list when I want to remove last node(which is tail), the value of tail stays the same even if it’s deleted. Would this be good way to chage value of the tail? Im still learning.

    if(currentNode === this.tail){
    this.tail = previousNode;
    previousNode.next = currentNode.next;
    return;
    }

  4. There’s a few bugs in the Queue implementation e.g. the `dequeue()` method doesn’t have a `return` statement, so the `firstVal` isn’t returned. If `enqueue(val)` is called multiple times the length can become a negative number, meaning subsequent `peek()` calls return undefined, even after adding values

  5. I updated the article to use an array for the queue, as a note though you wouldn’t use `push` you would use `unshift`

Leave a Reply