Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表的最佳数据结构_Javascript_Angular_Dictionary_Typescript_Data Structures - Fatal编程技术网

Javascript 表的最佳数据结构

Javascript 表的最佳数据结构,javascript,angular,dictionary,typescript,data-structures,Javascript,Angular,Dictionary,Typescript,Data Structures,我正试图找到可视化此UI的最佳数据结构: 我正在使用带有Angular的javascript/typescript,我应该能够添加/删除/更新项目。请考虑,我将有大量的行和列和多达100个非重复项目在每个单元格中。 到目前为止,我正在考虑以下数据结构: var data = new Map<string, Map<string, Set<Item>>>(); var data=newmap(); 其中字符串为rowKeyN和columnKeyN,Set包

我正试图找到可视化此UI的最佳数据结构:

我正在使用带有Angular的javascript/typescript,我应该能够添加/删除/更新项目。请考虑,我将有大量的行和列和多达100个非重复项目在每个单元格中。 到目前为止,我正在考虑以下数据结构:

var data = new Map<string, Map<string, Set<Item>>>();
var data=newmap();
其中字符串为rowKeyN和columnKeyN,Set包含每个单元格中的项

这种数据结构使用起来似乎有点复杂,但在性能方面是我发现的最好的。 你怎么认为?
提前谢谢。

碰到了这个问题-您应该看看Guava(用于Java)的表表示法-最后一个案例在哪里可以得到一个列表

但简而言之: 摘自文件:

Table<Vertex, Vertex, Double> weightedGraph = HashBasedTable.create();
weightedGraph.put(v1, v2, 4);
weightedGraph.put(v1, v3, 20);
weightedGraph.put(v2, v3, 5);

weightedGraph.row(v1); // returns a Map mapping v2 to 4, v3 to 20
weightedGraph.column(v3); // returns a Map mapping v1 to 20, v2 to 5
Table weightedGraph=HashBasedTable.create();
加权图(v1,v2,4);
加权图(v1,v3,20);
加权图(v2,v3,5);
weightedGraph.行(v1);//返回映射v2到4、v3到20的映射
weightedGraph.列(v3);//返回映射v1到20、v2到5的映射
在您的情况下,它将是


我来这里是想搜索类似上面的Typescript的东西-我还没有找到它-如果有人知道这样的实现-让我知道

遇到了这个问题-你应该看看Guava(Java)的表表示法-在最后一个例子中,你会得到一个列表

但简而言之: 摘自文件:

Table<Vertex, Vertex, Double> weightedGraph = HashBasedTable.create();
weightedGraph.put(v1, v2, 4);
weightedGraph.put(v1, v3, 20);
weightedGraph.put(v2, v3, 5);

weightedGraph.row(v1); // returns a Map mapping v2 to 4, v3 to 20
weightedGraph.column(v3); // returns a Map mapping v1 to 20, v2 to 5
Table weightedGraph=HashBasedTable.create();
加权图(v1,v2,4);
加权图(v1,v3,20);
加权图(v2,v3,5);
weightedGraph.行(v1);//返回映射v2到4、v3到20的映射
weightedGraph.列(v3);//返回映射v1到20、v2到5的映射
在您的情况下,它将是


我来这里是想搜索类似于上面的Typescript的东西-我还没有找到它-如果有人知道这样的实现-让我知道

答案是行和列的数量固定了吗?是的fixed@Lelezeus使用带有索引映射到头名称的数组数组可能更容易。基本上每一行都是一个数组。你可以使用一个单独的映射将数组索引映射到相应的头。这有意义吗?也许我明白你的想法,向前一步可以是:Map where:等。答案是从行和列的数量固定了吗?是的fixed@Lelezeus使用带有索引映射到头名称的数组数组可能更容易。基本上每一行都是一个数组。你可以使用一个单独的映射将数组索引映射到相应的头。这有意义吗?也许我明白你的意思,向前迈出的一步可能是:地图位置:等等。