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:

JavaScript’s sort()method: From basics to custom sorting

Discover how to sort arrays in JavaScript using sort() and toSorted(), including customization and language-sensitive sorting techniques.

Joseph Mawa
Mar 7, 2025 â‹… 11 min read
Migrating To Valkey From Redis

Migrating to Valkey from Redis

With Redis’ license change and the launch of Valkey 8.0 as an alternative, this guide covers key differences and migration steps.

Matteo Di Pirro
Mar 6, 2025 â‹… 5 min read
GraphQL Vs. REST APIs: What’s The Difference Between Them

GraphQL vs. REST APIs: What’s the difference between them

Compare GraphQL vs. REST APIs in terms of flexibility, efficiency, versioning, over-fetching, under-fetching, caching, and more.

Esteban Herrera
Mar 5, 2025 â‹… 7 min read
how to hide scrollbars with CSS

How to use CSS to hide scrollbars without impacting scrolling

Learn how to hide the scrollbar in popular web browsers by making use of modern CSS techniques, and dive into some interactive examples.

Fimber Elemuwa
Mar 4, 2025 â‹… 10 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