8

I'm attempting to export a module that should store a hashtable of given information so that another call to access that information can be checked for existence in the hashtable, and if found, return the value in the hashtable.

I am having trouble getting the hashtable in the export to remain consistent throughout the app as a singleton/static/global variable.

Here's what I have:

var Randomize = {

  hashTable: [],
  randomize:  function(rows) {

    var randomized = [];
    for(var i in rows) {
      //check if exists in hashtable, use values accordingly
    }
    return randomized;
  }

};

module.exports = Randomize;

And when I try to access it with:

var randomize = require('randomize');
/* ... */
console.log(randomize.randomize(rows))

It creates a new hashtable for each instance. How can I make it so that it reuses the same instance of hashtable?

2
  • Just store it in a variable var result = randomize.randomize(rows); Commented Feb 27, 2015 at 19:57
  • all you show is an empty array named hashTable. what happens after that? Commented Feb 27, 2015 at 21:07

1 Answer 1

4

Your hashtable might be in the wrong scope - it's possibly being clobbered with each require. Try this instead:

var hashTable = [];

var Randomize = {

  hashTable: hashTable,
  randomize:  function(rows) {

    var randomized = [];
    for(var i in rows) {
      //check if exists in hashtable, use values accordingly
    }
    return randomized;
  }
};

module.exports = Randomize;
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.