Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JavaScript idiom for limiting a string to a number of discrete values

In C# I might use an enumeration.

In JavaScript, how can I limit a value to a set of discrete values idiomatically?

like image 303
Ben Aston Avatar asked Feb 03 '12 13:02

Ben Aston


2 Answers

We sometimes define a variable in a JS class 'Enumerations' along these lines:

var Sex = {
    Male: 1,
    Female: 2
};

And then reference it just like a C# enumeration.

like image 193
dougajmcdonald Avatar answered Nov 15 '22 16:11

dougajmcdonald


There is no enumeration type in JavaScript. You could, however, wrap an object with a getter and setter method around it like

var value = (function() {
   var val;
   return {
      'setVal': function( v ) {
                   if ( v in [ listOfEnums ] ) {
                       val = v;
                   } else {
                       throw 'value is not in enumeration';
                   }
                },
      'getVal': function() { return val; }
   };
 })();
like image 38
Sirko Avatar answered Nov 15 '22 17:11

Sirko