【发布时间】:2021-09-23 11:21:54
【问题描述】:
澄清
我找到了一个正是我想要做的视频。我标记了 youtuber 谈论它的确切时间,所以除非你想观看整件事,否则不要跳过或重新开始视频。 https://youtu.be/9V3BnBeFmLs?t=299
目标:我有一个二维数组。考虑到我有以下格式的数组:
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&.&&&&
&&&&&&..&&&&&.&&&&
&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&
我将如何制作一个相机,它会根据它的 2d Position (x, y) 输出:
&&&&&&&&&&&&&&&&&&
&&&&&|---|&&&.&&&&
&&&&&|..&|&&&.&&&&
&&&&&|---|&&&&&&&&
&&&&&&&&&&&&&&&&&&
管道用于表示相机输出的边缘 我尝试了 2 种不同的方法。 #1 是我使用 2 个嵌套的 for 循环来搜索相机范围内二维数组上的每个字符,从左上角开始。 这似乎是一个有效的解决方案,但它对我不起作用。 (见2d Array finding values from target position)
#2 对值进行硬编码。出于某种原因,nodejs 不喜欢这样,而且复制起来也很糟糕,如果一个数组返回“undefined”,那么……整个事情就坏了。
对于代码,您可以访问链接。至于策略#2,你明白了。 (只是一长串数组访问)
注意事项:
- 数组的结构与此类似(除了更大):
[["&", "&"],
["&", "&"]]
已编辑。 输入是巨大的数组和相机的 (x, y) 位置。 根据相机的 (x, y) 位置,输出是较小的数组。 示例:
//big array (.join(""))
111111111
123456789012345678
&&&&&&&&&&&&&&&&&& 1
&&&&&&&&&&&&&.&&&& 2
&&&&&&..&&&&&.&&&& 3
&&&&&&&&&&&&&&&&&& 4
&&&&&&&&&&&&&&&&&& 5
所以输入是那里的数组,以及相机的位置: 假设 (14[x], 2[y]) 宽度为 1,高度为 1,我们将得到以下输出:
111
345
&&& 1
&.& 2
&.& 3
【问题讨论】:
-
对不起,我不明白你的问题。第一个数组是输入,第二个数组是输出?创建第二个数组的逻辑是什么?可以补充一下吗?
-
我们需要查看您的代码,可能是示例输入/所需输出。
-
好的,正在处理中。
标签: javascript node.js arrays