A javascript-based implementation of Enumeration Type.
-
For array of strings, the value of the items in the enumeration starts with zero (0) and increments by one for the succeeding items. To override the start value, set startAt property of the options (optional) parameter.
-
Each enumeration item has a function .toStringValue() which by default returns a capitalized string of the enumeration key. To customize string value, instantiate enumeration with an array of objects.
-
Accepted Parameters
- Array of Strings ['Element0', 'Element1', .., 'ElementN']
- Array of Objects [{Element0: 100}, {Element1: 200}, .., {ElementN: X}]
- Object {Element0: 100, Element1: 200, .., ElementN: X}
via npm:
$ npm install enumeration
Require enumeration module
var Enumeration = require('enumeration');
3 Ways to instantiate enumeration
1. Array of strings
By default, the value of the first item is zero (0). Each successive item's value is increased by 1. To override the default start value, set the startAt property of the options parameter to your desired value (e.g. {startAt: 1}).
Each enumeration item has a function called .toStringValue() which by default returns a capitalized string of the enumeration item. To specify custom string values, pass an array of objects (see second way to instantiate).
Syntax
new Enumeration(arrayOfStrings, [options])
Sample Code
//create enumeration with array of strings
var Colors = new Enumeration(['RED', 'GREEN', 'BLUE']);
//returns 0
Colors.RED
//returns 2
Colors.BLUE
//override default start value
var Colors = new Enumeration(['RED', 'GREEN', 'BLUE'], {startAt: 1});
//returns 1
Colors.RED
//returns 3
Colors.BLUE
//returns "Green"
Colors.GREEN.toStringValue();
2. Array of objects
To specify custom string values, add a property named stringValue to each item in the array of objects
Syntax
new Enumeration(arrayOfObjects)
Sample Code
//create enumeration with array of objects
var Colors = new Enumeration([{RED: 0}, {GREEN: 1}, {BLUE: 2}]);
//returns 1
Colors.GREEN
//returns "Green"
Colors.GREEN.toStringValue();
//specify custom string values
var Colors = new Enumeration([{RED: 0, stringValue: 'Red Roses'}, {GREEN: 1, stringValue: 'Green Light'}, {BLUE: 2, stringValue: 'Blue Book'}]);
//returns "Green Light"
Colors.GREEN.toStringValue();
3. Object
If you have created your own javascript enumeration before, chances are this is the format that you are more familiar with.
Syntax
new Enumeration(object)
Sample Code
//create enumeration with object
var Colors = new Enumeration({RED: 0, GREEN: 1, BLUE: 2});
//returns 1
Colors.GREEN
//returns "Green"
Colors.GREEN.toStringValue();
Methods
//create enumeration with specified custom string values
var Colors = new Enumeration([{RED: 0, stringValue: 'Red Roses'}, {GREEN: 1, stringValue: 'Green Light'}, {BLUE: 2, stringValue: 'Blue Book'}]);
//returns "Blue Book"
Colors.getStringValue(2);
//if value is not found, specify a default value. This will return "Unknown"
Colors.getStringValue(-1, 'Unknown');
//check if value exists on the enumeration. This will return false.
Colors.hasValue(99);
//returns enumeration keys in an array ["RED", "GREEN", "BLUE"]
Colors.getKeys();
//returns enumeration values in an array [0, 1, 2]
Colors.getValues();
//returns enumeration string values ["Red Roses", "Green Light", "Blue Book"]
Colors.getStringValues();
Others
//returns {"RED":0,"GREEN":100,"BLUE":200}
JSON.stringify(Colors);