1. Veera
  2. Blog

Underscore.js and guid function

Underscore library comes with the uniqueId() function that generates globally unique IDs to use in code. But it was not enough for my Backbone models as I needed the IDs to be unique across  invocations and users, i.e. something like UUID.

I have been using this code snippet to generate pseudo unique IDs for sometime. Since it's a utility function and it made lots of sense to move it to Underscore itself. Here's how I did it.

_.mixin({
      guid : function(){
        return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
          var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
          return v.toString(16);
        });
      }
    });

Once the above code is in place, then creating a unique ID is as simple as calling _.guid().

undefined

Written by

Veerasundar profile photo

Hey, I'm Veerasundar.
Senior Full Stack Developer

I build scalable web applications and engineering teams. Over the last 20 years, I’ve worked across frontend engineering, full stack development, architecture, and engineering leadership.

See my Resume