javascript中的复合键表示

时间:2013-11-08 14:29:55

标签: c# javascript dictionary

我有一个带有复合键的C#字典:

IDictionary<Tuple<int, int?>, MyObject> MyObjects

在Javascript中表示此数据结构的最佳方法是什么?

我希望能够访问我的对象,如:

var obj = MyObjects[[3,2]];

var obj = MyObjects[[3,null]];

1 个答案:

答案 0 :(得分:2)

可能类似

var myObjects = []; 
myObjects.push({key1:1, key2: 9, value: 22});
myObjects.push({key1:-1, key2: 0, value: 2});
...

并用普通的

查询之后
var foundValues = function(key1, key2) {

   var filteredArray = array.filter(function (element) { 
      return element.key1=== key1 && element.key2 === key2;
   });

   return filteredArray;
}

换句话说:展平成一个数组并从查询中投射结果。

编辑

如果你需要更高性能的方法,但稍微更“混乱”,你可以定义像 连接要搜索的键的字符串。参考上一个例子:

var myObjects = {}; 
myObjects["1_9"] = 22; 
myObjects["-1_0"] = 2; 

所以要访问你写的:

var foundValues = fucntion(key1, key2) {

   return myObjects[key1.toString() + "_" + key2.toString()];     

}

更快,但在一段时间后阅读代码时不太清楚。 对于一些繁重的计算密集型站点,我经常使用这种模式来提升我在正确的时刻选择所需数据的性能。