admin管理员组

文章数量:1321261

Im using this 'map' on js:

   var myMap = new Object();
   myMap[key1]=value1; //like this n times...

but i want to use the key as some bination of two strings meaning:

  function getMapValue(str1,str2){...}

i dont mind joining the two strings into one long string and use the function with the long string

any ideas?

Im using this 'map' on js:

   var myMap = new Object();
   myMap[key1]=value1; //like this n times...

but i want to use the key as some bination of two strings meaning:

  function getMapValue(str1,str2){...}

i dont mind joining the two strings into one long string and use the function with the long string

any ideas?

Share Improve this question asked Dec 3, 2011 at 16:39 Itzik984Itzik984 16.8k29 gold badges73 silver badges110 bronze badges 2
  • 1 I'm not quite sure what it is you're asking here. Could you try clarifying your question, or providing a more plete example? – rossipedia Commented Dec 3, 2011 at 16:42
  • i just want to use this self generated map. and i want the key to be a string, or maybe transform the string into integer... just looking for an idea of how could it e done.. – Itzik984 Commented Dec 3, 2011 at 16:44
Add a ment  | 

2 Answers 2

Reset to default 3

You can make a map of maps (just be sure to check that the intermediate map exists when accessing it)

var myMap = {}; //dont use "new Object()". It is evil.

function insert(k1, k2, v){
   if(!(k1 in myMap)){ myMap[k1] = {}; }
   myMap[k1][k2] = v;
}

function get(k1, k2){
   return myMap[k1] && myMap[k1][k2];
}

And if you want to join two substrings into a single one you can use the plus operator to concatenate things.

var customKey = k1 + '|' + k2;

Just be sure your separator can't be used in a normal key to avoid conflicts.

If I got you right, the following should help:

var myMap = {"key1" : "something1", "key2" : "something2"};

to get value for a key, you you use, either: return myMap.key1;

Or: return myMap.["key1"];

If you had/did: myMap["key1key2"] = "MagicHappens!";

you could use myMap.key1key2 to get the value or myMap["key1key2"], or even: return myMap["key1"+"key2"];

Or:

var x = "key1";
var y = "key2";
return myMap[x+y];

in your getter function, you get the two variables for the keys which you can then directly use.

本文标签: htmlUsing Strings as KEY of map in javascriptStack Overflow