问题标签 [jagged-arrays]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
442 浏览

c# - 如何在我的锯齿状数组中插入一个新数组

你好,我会非常感谢任何帮助。

好的,让我们看看,首先我声明了一个像这样的锯齿状数组和下一个代码

现在我的锯齿状数组内部将有 1 个数组,接下来你必须像这样填充数组:

现在我的锯齿状数组看起来像这样(也为此示例插入一些数据):

现在我的问题是,如果我声明,我如何插入一个新数组而不会丢失我的 previos 数据

我会丢失之前的数据,我希望看起来像这样:

我没有从一开始就声明 2 数组的原因是因为我不知道我要使用多少它可能只是 1 或 20 并且每次我必须创建一个新数组而不会丢失之前已经存在的数据填写,谢谢大家的关注,

0 投票
1 回答
233 浏览

c# - 以不同的顺序遍历 3D 数组

我有一个这样的数组:int[][][] grid_floor_row_col;

我想像这样遍历它:int[][][] grid_row_col_floor;

首先我试图改变for循环,然后改变数组(复制到一个新的),但我就是做不到,我的想法没有更进一步......我什至不知道它是否是可能的..

这是相同的数据,我只需要以不同的顺序遍历,每列,每行读取所有楼层......这是我遍历的方式:

现在我需要遍历:

看起来很琐碎,但我无法理解..

0 投票
2 回答
1026 浏览

c# - 如何比较锯齿状数组中的项目?

我想创建一个特定类型的锯齿状数组,然后根据数组中两个项目之间的比较创建另一个数组。

例如:

我不确定如何说如果 i+1 不存在,则跳过该比较。还是有更好的方法来做到这一点?

编辑

通过比较,我的意思是我想访问数组中在列中彼此接连出现的两个项目,对它们做一些事情并从产品中创建一个新数组(具有相同结构)的条目。

0 投票
1 回答
305 浏览

c# - c# 锯齿状数组bug(元素并不总是被设置)

我正在使用锯齿状数组来保存我正在制作的游戏中的地图段(集群)。数组中的位置对应于集群在地图中的位置。此外,如果内部数组(锯齿状部分)不再加载任何集群(集群在未使用的超时后从数组中删除),则外部数组的元素设置回 null 以保持地图的内存使用向下。

当游戏试图从地图中获取集群时,问题似乎是随机出现的:

loadCluster(int, int)方法应确保在该方法检索集群之前将其加载到数组中getCluster(int, int),并且几乎始终如此,但有时会loadCluster(int, int)以某种方式无法添加集群。

它似乎不会发生在任何特定的集群中,但总是在未添加内部数组时发生(但是,大多数情况下它创建的内部数组完全没有问题)。loadCluster(int, int)此外,当 Visual Studio 捕获随后的空指针异常时,退后一步并始终(至少到目前为止)重新调用正常工作。loadCluster(int, int)在方法中添加额外的调用getCluster(int, int)也大大降低了这个错误的频率。

老实说,我不知道是什么导致这个相当简单的功能不起作用,甚至看起来是随机的。任何帮助将非常感激

编辑:编辑 xAxis[][] 的其他代码

Cluster.clusterLoaded是一个布尔值,显示集群当前是否正在使用。 Cluster.clusterTimer是一个倒计时的 int,一旦clusterLoaded变为 false。如果clusterLoaded再次变为真,则将其重置为最大值。每次Cluster.Update(GameTime)运行时减1,而clusterLoaded为假。 loaded用于统计当前内部数组加载了多少个Cluster。

0 投票
1 回答
294 浏览

c# - C#:什么是正确的数据结构?(锯齿状对象“数组”)

我有List 一个IWord名为taggedInput. 我需要将每个元素与它自己ListIWord对象相关联。为此,我需要使用不同的数据类型。

在此数据类型中,父列表和子列表都必须是动态的,并且必须在运行时填充。

父列表必须允许重复值(因此它不能是Dictionary对象)。

我打算遍历父列表,并操作(添加、删除、重组)子列表中的元素。父列表和子列表中的每个元素都必须可以通过其在列表中的位置来访问。

这是我制作的图像,以更好地说明我的需求:

在此处输入图像描述

为此使用的最佳数据类型是什么?我需要类似的东西List<IWord,List<IWord>> (但那不会是一个列表)

0 投票
1 回答
1307 浏览

c# - 数组拆分为行和列二维数组

我试图将 ByteArray (代表屏幕截图数据)拆分为 2d 数组,所以如果我有一个 3x3 数组(xy /rows 列)

它看起来像这样

我正在尝试通过 2 个嵌套的 for 循环,将串行数据拆分为的二维数组中的单独行,因为它是在屏幕上最初成形/形成的。

对于这个例子,我们只需将的ScreenShotRows[] 称为“b”

b[0][0] = 1 b[0][1] = 2 b[0][2] = 3

b[1][0] = 4 b[1][1] = 5 b[1][2] = 6

b[2][0] = 7 b[2][1] = 8 b[2][2] = 9

问题是迭代整个数组的正确方法是什么, 我试图通过这段代码来实现这一点。

它循环第一行,分配值:

b[0][0] = 1 b[0][1] = 2 b[0][2] = 3

b[1][0] = 1 b[0][1] = 2 b[0][2] = 3

b[2][0] = 1 b[0][1] = 2 b[0][2] = 3

这是我第一次尝试这种带有嵌套 for 循环的多维/锯齿状数组,我发现让它工作起来非常令人困惑

也尽可能快地完成它,

因为我的数据远大于 3x3 ,并且方法被频繁调用多次,因此性能至关重要

我的下一步将是对列采用相同的方式

元素 0,0 到 0,2 ---- 元素 1,0 到 1,2 ---- 元素 2,0 到 2,2

0 投票
2 回答
755 浏览

c# - 反向 C# 锯齿状数组类型声明

我刚刚经历了其中一个“什么……”的时刻。以下是有意的,C# 中数组的“非自然”声明背后是否有一些晦涩的推理?

我本来期望相反。int[,][] 声明一个一维数组,其中每个元素都是一个二维数组。

有趣的是,类型的名称是相反的:

有人可以解释一下吗?这是故意的吗?(在 Windows 下使用 .NET 4.5。)

0 投票
1 回答
60 浏览

php - 用于比较装甲套装的复杂阵列

也许我有一个愚蠢的时刻,但我似乎无法在我的脑海中解决这个问题。

我会尝试解释:-

我有三套。每组包含 6 个对象。我需要一个循环(或一系列嵌套循环)来产生这些集合的每个组合。

这是一个游戏,我正在尝试编写一个脚本来比较盔甲套装 - 我知道很伤心。集合数组如下所示:-

这可能比我想象的要简单得多(或者困难得多?)。

欢迎提出想法!

谢谢,鲁。

编辑:-

好的,这是一个数组样本,我去掉了很多额外的统计数据,只为每一块留下一个:-

从这个例子中(稍后我会担心比较其他统计数据),“理想”的单品是 set1 的帽子和靴子,set2 的衬衫和裤子,以及 set3 的手套和肩膀。

我的查询是如何最好地制定一个循环,该循环可以为每个排列生成一个“结果”数组,以便稍后进行比较。

0 投票
2 回答
166 浏览

c# - 来自 2 个点数组的 4 个点的组合

我有两个二维点数组:

从这两个数组中,我想生成 4 个点的组合。结果应该在一个列表中:

但是我需要指定每个组合从 array1 中获取的点数(并从 array2 中获取剩余的点)。点的顺序无关紧要。而且不应该有重复。

例如:

(从array1中取1分,从array2中取3分)

绝不 :

两者都不 :

(从array1中取2个点,从array2中取2个点)

...

(从 array1 中取 3 个点,从 array2 中取 1 个点)

...

我希望有人可以帮助我,因为我花了很多时间阅读/测试了很多答案,但找不到解决方案。

PS/编辑:如果您可以提供 C# 代码,那就太好了。

0 投票
0 回答
1085 浏览

c# - 从锯齿状数组中获取值

我想创建一个程序来获取学生的姓名和他们在 2 个科目中的分数,并以表格格式显示它们,我使用的是锯齿状数组,如果我只显示标记它工作得很好,但我也想包括学生的名字显示的信息,下面是我的代码。

谁能告诉我如何在显示的信息中包含学生信息(姓名),就像它应该显示的一样